Revert 2267b2e84593bd3d61a1188e68fba06307fa9dab
Subsystems (5)
[email protected]
maintainerPATCH 1/1 Revert 2267b2e84593bd3d61a1188e68fba06307fa9dab
From: Chuck Lever <[email protected]>
ltp test fcntl17 fails on v5.15.154. This was bisected to commit 2267b2e84593 ("lockd: introduce safe async lock op").
--- Documentation/filesystems/nfs/exporting.rst | 7 ------- fs/lockd/svclock.c | 4 +++- fs/nfsd/nfs4state.c | 10 +++------- include/linux/exportfs.h | 14 -------------- 4 files changed, 6 insertions(+), 29 deletions(-)
Documentation/filesystems/nfs/exporting.rst +0 -7
@@ -241,10 +241,3 @@ following flags are defined: all of an inode's dirty data on last close. Exports that behave this way should set EXPORT_OP_FLUSH_ON_CLOSE so that NFSD knows to skip waiting for writeback when closing such files. - - EXPORT_OP_ASYNC_LOCK - Indicates a capable filesystem to do async lock - requests from lockd. Only set EXPORT_OP_ASYNC_LOCK if the filesystem has - it's own ->lock() functionality as core posix_lock_file() implementation - has no async lock request handling yet. For more information about how to - indicate an async lock request from a ->lock() file_operations struct, see - fs/locks.c and comment for the function vfs_lock_file().
fs/lockd/svclock.c +3 -1
@@ -470,7 +470,9 @@ nlmsvc_lock(struct svc_rqst *rqstp, struct nlm_file *file, struct nlm_host *host, struct nlm_lock *lock, int wait, struct nlm_cookie *cookie, int reclaim) { +#if IS_ENABLED(CONFIG_SUNRPC_DEBUG) struct inode *inode = nlmsvc_file_inode(file); +#endif struct nlm_block *block =NULL ;int error;int mode;
@@ -484,7 +486,7 @@ nlmsvc_lock(struct svc_rqst *rqstp, struct nlm_file *file, (long long )lock->fl.fl_end, wait); -if (!exportfs_lock_op_is_async (inode->i_sb->s_export_op)) { +if (nlmsvc_file_file (file)->f_op->lock) { async_block = wait; wait =0 ; }
fs/nfsd/nfs4state.c +3 -7
@@ -7420,7 +7420,6 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,struct nfsd4_blocked_lock *nbl =NULL ;struct file_lock *file_lock =NULL ;struct file_lock *conflock =NULL ; -struct super_block *sb;__be32 status =0 ;int lkflg;int err;
@@ -7442,7 +7441,6 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,dprintk ("NFSD: nfsd4_lock: permission denied!\n" );return status; } - sb = cstate->current_fh.fh_dentry->d_sb;if (lock->lk_is_new) {if (nfsd4_has_session (cstate))
@@ -7494,8 +7492,7 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, fp = lock_stp->st_stid.sc_file;switch (lock->lk_type) {case NFS4_READW_LT : -if (nfsd4_has_session (cstate) || -exportfs_lock_op_is_async (sb->s_export_op)) +if (nfsd4_has_session (cstate)) fl_flags |=FL_SLEEP ; fallthrough;case NFS4_READ_LT :
@@ -7507,8 +7504,7 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, fl_type =F_RDLCK ;break ;case NFS4_WRITEW_LT : -if (nfsd4_has_session (cstate) || -exportfs_lock_op_is_async (sb->s_export_op)) +if (nfsd4_has_session (cstate)) fl_flags |=FL_SLEEP ; fallthrough;case NFS4_WRITE_LT :
@@ -7536,7 +7532,7 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,* for file locks), so don't attempt blocking lock notifications * on those filesystems: */ -if (!exportfs_lock_op_is_async (sb->s_export_op)) +if (nf->nf_file->f_op->lock) fl_flags &= ~FL_SLEEP ; nbl =find_or_allocate_block (lock_sop, &fp->fi_fhandle, nn);
include/linux/exportfs.h +0 -14
@@ -222,23 +222,9 @@ struct export_operations {atomic attribute updates */ #define EXPORT_OP_FLUSH_ON_CLOSE (0x20)/* fs flushes file data on close */ -#define EXPORT_OP_ASYNC_LOCK (0x40)/* fs can do async lock request */ unsigned long flags; }; -/** -* exportfs_lock_op_is_async() - export op supports async lock operation -* @export_ops: the nfs export operations to check -* -* Returns true if the nfs export_operations structure has -* EXPORT_OP_ASYNC_LOCK in their flags set -*/ -static inline bool -exportfs_lock_op_is_async (const struct export_operations *export_ops) -{ -return export_ops->flags &EXPORT_OP_ASYNC_LOCK ; -} -extern int exportfs_encode_inode_fh (struct inode *inode,struct fid *fid,int *max_len,struct inode *parent); extern int exportfs_encode_fh(struct dentry *dentry, struct fid *fid,
Signature · 1 line
2.44.0
Greg KH
maintainerQuoted 4 lines · On Tue, Apr 16, 2024 at 04:33:37PM -0400, [email protected] wrote:
From: Chuck Lever <[email protected]>
ltp test fcntl17 fails on v5.15.154. This was bisected to commit
2267b2e84593("lockd: introduce safe async lock op").
Your subject line is a big odd :(
Quoted 5 lines
Reported-by Harshit Mogalapalli <[email protected]>Signed-off-by Chuck Lever <[email protected]>---
So this is only 5.15, right?
thanks,
greg k-h
Quoted 7 lines · Greg KH
Quoted 4 lines · On Tue, Apr 16, 2024 at 04:33:37PM -0400, [email protected] wrote:
From: Chuck Lever <[email protected]>
ltp test fcntl17 fails on v5.15.154. This was bisected to commit
2267b2e84593("lockd: introduce safe async lock op").Your subject line is a big odd :(
I used the style we normally use for revert patches for Linus' kernel. Let me know what needs to be improved.
Quoted 6 lines
Quoted 4 lines
Reported-by Harshit Mogalapalli <[email protected]>Signed-off-by Chuck Lever <[email protected]>---
So this is only 5.15, right?
Yes.
Signature · 1 line
Chuck Lever
Greg KH
maintainerQuoted 11 lines · Chuck Lever
Quoted 7 lines · Greg KH
Quoted 4 lines · On Tue, Apr 16, 2024 at 04:33:37PM -0400, [email protected] wrote:
From: Chuck Lever <[email protected]>
ltp test fcntl17 fails on v5.15.154. This was bisected to commit
2267b2e84593("lockd: introduce safe async lock op").Your subject line is a big odd :(
I used the style we normally use for revert patches for Linus' kernel. Let me know what needs to be improved.
That's not normal, this is what that would normally look like:
~/linux/stable/scratch (s-515) $ git revert 2267b2e84593bd3d61a1188e68fba06307fa9dab Auto-merging fs/nfsd/nfs4state.c
[s-515 5bd6c14e1a72] Revert "lockd: introduce safe async lock op"
4 files changed, 6 insertions(+), 29 deletions(-)
Subject lines don't have a huge hash in it.
Anyway, I can fix this up, no worries, but I don't know how you created this to get that subject line.
thanks,
greg k-h