alistair23-linux/fs/nfsd
Jeff Layton f456458e4d nfsd: wake blocked file lock waiters before sending callback
When a blocked NFS lock is "awoken" we send a callback to the server and
then wake any hosts waiting on it. If a client attempts to get a lock
and then drops off the net, we could end up waiting for a long time
until we end up waking locks blocked on that request.

So, wake any other waiting lock requests before sending the callback.
Do this by calling locks_delete_block in a new "prepare" phase for
CB_NOTIFY_LOCK callbacks.

URL: https://bugzilla.kernel.org/show_bug.cgi?id=203363
Fixes: 16306a61d3 ("fs/locks: always delete_block after waiting.")
Reported-by: Slawomir Pryczek <slawek1211@gmail.com>
Cc: Neil Brown <neilb@suse.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2019-04-22 15:38:41 -04:00
..
acl.h
auth.c
auth.h
blocklayout.c
blocklayoutxdr.c
blocklayoutxdr.h
cache.h
current_stateid.h
export.c
export.h
fault_inject.c
flexfilelayout.c
flexfilelayoutxdr.c
flexfilelayoutxdr.h
idmap.h
Kconfig
lockd.c
Makefile
netns.h
nfs2acl.c
nfs3acl.c
nfs3proc.c nfsd/nfsd3_proc_readdir: fix buffer count and page pointers 2019-04-05 19:57:24 -04:00
nfs3xdr.c nfsd/nfsd3_proc_readdir: fix buffer count and page pointers 2019-04-05 19:57:24 -04:00
nfs4acl.c
nfs4callback.c nfsd: Don't release the callback slot unless it was actually held 2019-04-08 12:43:15 -04:00
nfs4idmap.c
nfs4layouts.c nfsd: drop useless LIST_HEAD 2018-12-27 20:59:50 -05:00
nfs4proc.c NFSD remove OP_CACHEME from 4.2 op_flags 2018-12-14 12:52:15 -05:00
nfs4recover.c nfsd: fix a warning in __cld_pipe_upcall() 2018-11-28 18:36:03 -05:00
nfs4state.c nfsd: wake blocked file lock waiters before sending callback 2019-04-22 15:38:41 -04:00
nfs4xdr.c
nfscache.c mm: convert totalram_pages and totalhigh_pages variables to atomic 2018-12-28 12:11:47 -08:00
nfsctl.c Miscellaneous NFS server fixes. Probably the most visible bug is one 2019-03-12 15:06:54 -07:00
nfsd.h
nfsfh.c
nfsfh.h
nfsproc.c
nfssvc.c
nfsxdr.c
pnfs.h
state.h nfsd: Don't release the callback slot unless it was actually held 2019-04-08 12:43:15 -04:00
stats.c
stats.h
trace.c
trace.h
vfs.c nfsd: Fix error return values for nfsd4_clone_file_range() 2019-02-06 15:32:05 -05:00
vfs.h
xdr.h
xdr3.h
xdr4.h
xdr4cb.h