Loading fs/nfsd/nfsfh.h +37 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ #include <linux/exportfs.h> #include <linux/nfs4.h> #include "export.h" /* * The file handle starts with a sequence of four-byte words. * The first word contains a version number (1) and three descriptor bytes Loading Loading @@ -271,6 +273,41 @@ static inline bool fh_fsid_match(const struct knfsd_fh *fh1, return true; } /** * fh_want_write - Get write access to an export * @fhp: File handle of file to be written * * Caller must invoke fh_drop_write() when its write operation * is complete. * * Returns 0 if the file handle's export can be written to. Otherwise * the export is not prepared for updates, and the returned negative * errno value reflects the reason for the failure. */ static inline int fh_want_write(struct svc_fh *fhp) { int ret; if (fhp->fh_want_write) return 0; ret = mnt_want_write(fhp->fh_export->ex_path.mnt); if (!ret) fhp->fh_want_write = true; return ret; } /** * fh_drop_write - Release write access on an export * @fhp: File handle of file on which fh_want_write() was previously called */ static inline void fh_drop_write(struct svc_fh *fhp) { if (fhp->fh_want_write) { fhp->fh_want_write = false; mnt_drop_write(fhp->fh_export->ex_path.mnt); } } /** * knfsd_fh_hash - calculate the crc32 hash for the filehandle * @fh - pointer to filehandle Loading fs/nfsd/vfs.h +0 −20 Original line number Diff line number Diff line Loading @@ -160,26 +160,6 @@ __be32 nfsd_permission(struct svc_cred *cred, struct svc_export *exp, void nfsd_filp_close(struct file *fp); static inline int fh_want_write(struct svc_fh *fh) { int ret; if (fh->fh_want_write) return 0; ret = mnt_want_write(fh->fh_export->ex_path.mnt); if (!ret) fh->fh_want_write = true; return ret; } static inline void fh_drop_write(struct svc_fh *fh) { if (fh->fh_want_write) { fh->fh_want_write = false; mnt_drop_write(fh->fh_export->ex_path.mnt); } } static inline __be32 fh_getattr(const struct svc_fh *fh, struct kstat *stat) { u32 request_mask = STATX_BASIC_STATS; Loading Loading
fs/nfsd/nfsfh.h +37 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ #include <linux/exportfs.h> #include <linux/nfs4.h> #include "export.h" /* * The file handle starts with a sequence of four-byte words. * The first word contains a version number (1) and three descriptor bytes Loading Loading @@ -271,6 +273,41 @@ static inline bool fh_fsid_match(const struct knfsd_fh *fh1, return true; } /** * fh_want_write - Get write access to an export * @fhp: File handle of file to be written * * Caller must invoke fh_drop_write() when its write operation * is complete. * * Returns 0 if the file handle's export can be written to. Otherwise * the export is not prepared for updates, and the returned negative * errno value reflects the reason for the failure. */ static inline int fh_want_write(struct svc_fh *fhp) { int ret; if (fhp->fh_want_write) return 0; ret = mnt_want_write(fhp->fh_export->ex_path.mnt); if (!ret) fhp->fh_want_write = true; return ret; } /** * fh_drop_write - Release write access on an export * @fhp: File handle of file on which fh_want_write() was previously called */ static inline void fh_drop_write(struct svc_fh *fhp) { if (fhp->fh_want_write) { fhp->fh_want_write = false; mnt_drop_write(fhp->fh_export->ex_path.mnt); } } /** * knfsd_fh_hash - calculate the crc32 hash for the filehandle * @fh - pointer to filehandle Loading
fs/nfsd/vfs.h +0 −20 Original line number Diff line number Diff line Loading @@ -160,26 +160,6 @@ __be32 nfsd_permission(struct svc_cred *cred, struct svc_export *exp, void nfsd_filp_close(struct file *fp); static inline int fh_want_write(struct svc_fh *fh) { int ret; if (fh->fh_want_write) return 0; ret = mnt_want_write(fh->fh_export->ex_path.mnt); if (!ret) fh->fh_want_write = true; return ret; } static inline void fh_drop_write(struct svc_fh *fh) { if (fh->fh_want_write) { fh->fh_want_write = false; mnt_drop_write(fh->fh_export->ex_path.mnt); } } static inline __be32 fh_getattr(const struct svc_fh *fh, struct kstat *stat) { u32 request_mask = STATX_BASIC_STATS; Loading