X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fnfsd%2Fauth.c;h=294992e9bf69e18b17a52964dd0af23841894f26;hb=HEAD;hp=21928056e35ecad1c8aa5cb656d9d495df6a3022;hpb=939ab20152390c8ccccfa6fac0830405ca91d903;p=linux-2.6 diff --git a/fs/nfsd/auth.c b/fs/nfsd/auth.c index 21928056e3..294992e9bf 100644 --- a/fs/nfsd/auth.c +++ b/fs/nfsd/auth.c @@ -10,8 +10,7 @@ #include #include #include - -#define CAP_NFSD_MASK (CAP_FS_MASK|CAP_TO_MASK(CAP_SYS_RESOURCE)) +#include "auth.h" int nfsexp_flags(struct svc_rqst *rqstp, struct svc_export *exp) { @@ -69,10 +68,12 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp) ret = set_current_groups(cred.cr_group_info); put_group_info(cred.cr_group_info); if ((cred.cr_uid)) { - cap_t(current->cap_effective) &= ~CAP_NFSD_MASK; + current->cap_effective = + cap_drop_nfsd_set(current->cap_effective); } else { - cap_t(current->cap_effective) |= (CAP_NFSD_MASK & - current->cap_permitted); + current->cap_effective = + cap_raise_nfsd_set(current->cap_effective, + current->cap_permitted); } return ret; }