git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git]
/
fs
/
nfsd
/
auth.c
diff --git
a/fs/nfsd/auth.c
b/fs/nfsd/auth.c
index
cfe9ce8
..
8d35f45
100644
(file)
--- a/
fs/nfsd/auth.c
+++ b/
fs/nfsd/auth.c
@@
-9,6
+9,7
@@
#include <linux/sunrpc/svc.h>
#include <linux/sunrpc/svcauth.h>
#include <linux/nfsd/nfsd.h>
#include <linux/sunrpc/svc.h>
#include <linux/sunrpc/svcauth.h>
#include <linux/nfsd/nfsd.h>
+#include <linux/vserver/xid.h>
#define CAP_NFSD_MASK (CAP_FS_MASK|CAP_TO_MASK(CAP_SYS_RESOURCE))
#define CAP_NFSD_MASK (CAP_FS_MASK|CAP_TO_MASK(CAP_SYS_RESOURCE))
@@
-42,18
+43,20
@@
int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp)
}
if (cred->cr_uid != (uid_t) -1)
}
if (cred->cr_uid != (uid_t) -1)
- current->fsuid =
cred->cr_uid
;
+ current->fsuid =
INOXID_UID(1, cred->cr_uid, cred->cr_gid)
;
else
current->fsuid = exp->ex_anon_uid;
if (cred->cr_gid != (gid_t) -1)
else
current->fsuid = exp->ex_anon_uid;
if (cred->cr_gid != (gid_t) -1)
- current->fsgid =
cred->cr_gid
;
+ current->fsgid =
INOXID_GID(1, cred->cr_uid, cred->cr_gid)
;
else
current->fsgid = exp->ex_anon_gid;
else
current->fsgid = exp->ex_anon_gid;
+
+ current->xid = INOXID_XID(1, cred->cr_uid, cred->cr_gid, 0);
if (!cred->cr_group_info)
return -ENOMEM;
ret = set_current_groups(cred->cr_group_info);
if (!cred->cr_group_info)
return -ENOMEM;
ret = set_current_groups(cred->cr_group_info);
- if (
(cred->cr_u
id)) {
+ if (
INOXID_UID(1, cred->cr_uid, cred->cr_g
id)) {
cap_t(current->cap_effective) &= ~CAP_NFSD_MASK;
} else {
cap_t(current->cap_effective) |= (CAP_NFSD_MASK &
cap_t(current->cap_effective) &= ~CAP_NFSD_MASK;
} else {
cap_t(current->cap_effective) |= (CAP_NFSD_MASK &