From: NeilBrown The credentials (uid/gid) of a process are set when a filehandle is verified. Nfsv4 allows requests without an explicit filehandle (instead, an implicit 'root' filehandle) so we much make sure the credentials are set for these requests too. From: "J. Bruce Fields" From: Andros: added a call to nfsd_setuser in nfsd4_putrootfh so that nfsd runs as the rpc->cred user. --- 25-akpm/fs/nfsd/nfs4proc.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletion(-) diff -puN fs/nfsd/nfs4proc.c~kNFSdv4-9-of-10-Set-credentials-properly-when-puutrootfh-is-used fs/nfsd/nfs4proc.c --- 25/fs/nfsd/nfs4proc.c~kNFSdv4-9-of-10-Set-credentials-properly-when-puutrootfh-is-used 2004-04-07 19:39:57.125379344 -0700 +++ 25-akpm/fs/nfsd/nfs4proc.c 2004-04-07 19:39:57.129378736 -0700 @@ -194,9 +194,14 @@ nfsd4_putfh(struct svc_rqst *rqstp, stru static inline int nfsd4_putrootfh(struct svc_rqst *rqstp, struct svc_fh *current_fh) { + int status; + fh_put(current_fh); - return exp_pseudoroot(rqstp->rq_client, current_fh, + status = exp_pseudoroot(rqstp->rq_client, current_fh, &rqstp->rq_chandle); + if (!status) + status = nfsd_setuser(rqstp, current_fh->fh_export); + return status; } static inline int _