Loading fs/nfsd/nfsfh.c +24 −6 Original line number Original line Diff line number Diff line Loading @@ -258,14 +258,32 @@ out: return error; return error; } } /* /** * Perform sanity checks on the dentry in a client's file handle. * fh_verify - filehandle lookup and access checking * @rqstp: pointer to current rpc request * @fhp: filehandle to be verified * @type: expected type of object pointed to by filehandle * @access: type of access needed to object * * Look up a dentry from the on-the-wire filehandle, check the client's * access to the export, and set the current task's credentials. * * Regardless of success or failure of fh_verify(), fh_put() should be * called on @fhp when the caller is finished with the filehandle. * * fh_verify() may be called multiple times on a given filehandle, for * example, when processing an NFSv4 compound. The first call will look * up a dentry using the on-the-wire filehandle. Subsequent calls will * skip the lookup and just perform the other checks and possibly change * the current task's credentials. * * * Note that the file handle dentry may need to be freed even after * @type specifies the type of object expected using one of the S_IF* * an error return. * constants defined in include/linux/stat.h. The caller may use zero * to indicate that it doesn't care, or a negative integer to indicate * that it expects something not of the given type. * * * This is only called at the start of an nfsproc call, so fhp points to * @access is formed from the NFSD_MAY_* constants defined in * a svc_fh which is all 0 except for the over-the-wire file handle. * include/linux/nfsd/nfsd.h. */ */ __be32 __be32 fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access) fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access) Loading Loading
fs/nfsd/nfsfh.c +24 −6 Original line number Original line Diff line number Diff line Loading @@ -258,14 +258,32 @@ out: return error; return error; } } /* /** * Perform sanity checks on the dentry in a client's file handle. * fh_verify - filehandle lookup and access checking * @rqstp: pointer to current rpc request * @fhp: filehandle to be verified * @type: expected type of object pointed to by filehandle * @access: type of access needed to object * * Look up a dentry from the on-the-wire filehandle, check the client's * access to the export, and set the current task's credentials. * * Regardless of success or failure of fh_verify(), fh_put() should be * called on @fhp when the caller is finished with the filehandle. * * fh_verify() may be called multiple times on a given filehandle, for * example, when processing an NFSv4 compound. The first call will look * up a dentry using the on-the-wire filehandle. Subsequent calls will * skip the lookup and just perform the other checks and possibly change * the current task's credentials. * * * Note that the file handle dentry may need to be freed even after * @type specifies the type of object expected using one of the S_IF* * an error return. * constants defined in include/linux/stat.h. The caller may use zero * to indicate that it doesn't care, or a negative integer to indicate * that it expects something not of the given type. * * * This is only called at the start of an nfsproc call, so fhp points to * @access is formed from the NFSD_MAY_* constants defined in * a svc_fh which is all 0 except for the over-the-wire file handle. * include/linux/nfsd/nfsd.h. */ */ __be32 __be32 fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access) fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access) Loading