|
@@ -63,7 +63,8 @@ nfsd3_proc_getattr(struct svc_rqst *rqstp, struct nfsd_fhandle *argp,
|
|
SVCFH_fmt(&argp->fh));
|
|
SVCFH_fmt(&argp->fh));
|
|
|
|
|
|
fh_copy(&resp->fh, &argp->fh);
|
|
fh_copy(&resp->fh, &argp->fh);
|
|
- nfserr = fh_verify(rqstp, &resp->fh, 0, NFSD_MAY_NOP);
|
|
|
|
|
|
+ nfserr = fh_verify(rqstp, &resp->fh, 0,
|
|
|
|
+ NFSD_MAY_NOP | NFSD_MAY_BYPASS_GSS_ON_ROOT);
|
|
if (nfserr)
|
|
if (nfserr)
|
|
RETURN_STATUS(nfserr);
|
|
RETURN_STATUS(nfserr);
|
|
|
|
|
|
@@ -530,7 +531,7 @@ nfsd3_proc_fsstat(struct svc_rqst * rqstp, struct nfsd_fhandle *argp,
|
|
dprintk("nfsd: FSSTAT(3) %s\n",
|
|
dprintk("nfsd: FSSTAT(3) %s\n",
|
|
SVCFH_fmt(&argp->fh));
|
|
SVCFH_fmt(&argp->fh));
|
|
|
|
|
|
- nfserr = nfsd_statfs(rqstp, &argp->fh, &resp->stats);
|
|
|
|
|
|
+ nfserr = nfsd_statfs(rqstp, &argp->fh, &resp->stats, 0);
|
|
fh_put(&argp->fh);
|
|
fh_put(&argp->fh);
|
|
RETURN_STATUS(nfserr);
|
|
RETURN_STATUS(nfserr);
|
|
}
|
|
}
|
|
@@ -558,7 +559,8 @@ nfsd3_proc_fsinfo(struct svc_rqst * rqstp, struct nfsd_fhandle *argp,
|
|
resp->f_maxfilesize = ~(u32) 0;
|
|
resp->f_maxfilesize = ~(u32) 0;
|
|
resp->f_properties = NFS3_FSF_DEFAULT;
|
|
resp->f_properties = NFS3_FSF_DEFAULT;
|
|
|
|
|
|
- nfserr = fh_verify(rqstp, &argp->fh, 0, NFSD_MAY_NOP);
|
|
|
|
|
|
+ nfserr = fh_verify(rqstp, &argp->fh, 0,
|
|
|
|
+ NFSD_MAY_NOP | NFSD_MAY_BYPASS_GSS_ON_ROOT);
|
|
|
|
|
|
/* Check special features of the file system. May request
|
|
/* Check special features of the file system. May request
|
|
* different read/write sizes for file systems known to have
|
|
* different read/write sizes for file systems known to have
|