alistair23-linux/fs/nfs
Trond Myklebust bd3d16a887 NFSv4.1: Fix a potential layoutget/layoutrecall deadlock
If the client is sending a layoutget, but the server issues a callback
to recall what it thinks may be an outstanding layout, then we may find
an uninitialised layout attached to the inode due to the layoutget.
In that case, it is appropriate to return NFS4ERR_NOMATCHING_LAYOUT
rather than NFS4ERR_DELAY, as the latter can end up deadlocking.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
2018-07-26 16:25:25 -04:00
..
blocklayout pnfs/blocklayout: Ensure disk address in block device map 2018-01-25 16:42:35 -05:00
filelayout nfs41: do not return ENOMEM on LAYOUTUNAVAILABLE 2018-01-18 12:51:31 -05:00
flexfilelayout pNFS/flexfiles: Ensure we always return a layout if it has layoutstats 2018-07-26 16:25:25 -04:00
cache_lib.c
cache_lib.h
callback.c
callback.h
callback_proc.c NFSv4.1: Fix a potential layoutget/layoutrecall deadlock 2018-07-26 16:25:25 -04:00
callback_xdr.c NFSv4: Clean up CB_GETATTR encoding 2018-04-10 16:06:22 -04:00
client.c NFS client updates for Linux 4.18 2018-06-12 10:09:03 -07:00
delegation.c NFS: Fix an rcu deadlock in nfs_delegation_find_inode() 2018-06-14 14:05:38 -04:00
delegation.h NFSv4: Fix the nfs_inode_set_delegation() arguments 2018-04-10 16:06:22 -04:00
dir.c NFS: Allow optimisation of lseek(fd, SEEK_CUR, 0) on directories 2018-07-26 16:25:25 -04:00
direct.c NFS: Fix an incorrect type in struct nfs_direct_req 2018-03-08 12:56:31 -05:00
dns_resolve.c
dns_resolve.h
export.c NFS: Pass the inode down to the getattr() callback 2018-06-04 12:07:07 -04:00
file.c
fscache-index.c vfs: change inode times to use struct timespec64 2018-06-05 16:57:31 -07:00
fscache.c vfs: change inode times to use struct timespec64 2018-06-05 16:57:31 -07:00
fscache.h fscache: Pass object size in rather than calling back for it 2018-04-06 14:05:14 +01:00
getroot.c
inode.c Merge branch 'vfs_timespec64' of https://github.com/deepa-hub/vfs into vfs-timespec64 2018-06-14 14:54:00 +02:00
internal.h
io.c NFS: Fix a race between mmap() and O_DIRECT 2018-01-28 22:00:15 -05:00
iostat.h
Kconfig
Makefile
mount_clnt.c
namespace.c
netns.h
nfs.h
nfs2super.c
nfs2xdr.c vfs: change inode times to use struct timespec64 2018-06-05 16:57:31 -07:00
nfs3_fs.h
nfs3acl.c
nfs3client.c
nfs3proc.c NFS: Pass the inode down to the getattr() callback 2018-06-04 12:07:07 -04:00
nfs3super.c
nfs3xdr.c vfs: change inode times to use struct timespec64 2018-06-05 16:57:31 -07:00
nfs4_fs.h pnfs: Move nfs4_opendata into nfs4_fs.h 2018-05-31 15:03:11 -04:00
nfs4client.c nfs: system crashes after NFS4ERR_MOVED recovery 2018-02-22 12:17:42 -05:00
nfs4file.c
nfs4getroot.c
nfs4idmap.c NFSv4: Fix possible 1-byte stack overflow in nfs_idmap_read_and_verify_message 2018-05-31 15:02:16 -04:00
nfs4idmap.h
nfs4namespace.c
nfs4proc.c pNFS: Parse the results of layoutget on open even if permissions checks fail 2018-07-26 16:25:25 -04:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c pnfs: Add LAYOUTGET to OPEN of a new file 2018-05-31 15:03:11 -04:00
nfs4super.c
nfs4sysctl.c nfs: Do not convert nfs_idmap_cache_timeout to jiffies 2018-01-18 15:10:47 -05:00
nfs4trace.c
nfs4trace.h
nfs4xdr.c Merge branch 'vfs_timespec64' of https://github.com/deepa-hub/vfs into vfs-timespec64 2018-06-14 14:54:00 +02:00
nfs42.h
nfs42proc.c NFSv4: Always clear the pNFS layout when handling ESTALE 2018-05-31 15:02:16 -04:00
nfs42xdr.c
nfsroot.c
nfstrace.c
nfstrace.h NFS client updates for Linux 4.16 2018-01-30 19:03:48 -08:00
pagelist.c sched/wait, fs/nfs: Convert wait_on_atomic_t() usage to the new wait_var_event() API 2018-03-20 08:23:21 +01:00
pnfs.c pNFS: Parse the results of layoutget on open even if permissions checks fail 2018-07-26 16:25:25 -04:00
pnfs.h pNFS: Don't send layoutreturn if the layout is already invalid 2018-06-19 08:52:27 -04:00
pnfs_dev.c
pnfs_nfs.c sched/wait, fs/nfs: Convert wait_on_atomic_t() usage to the new wait_var_event() API 2018-03-20 08:23:21 +01:00
proc.c NFS: Pass the inode down to the getattr() callback 2018-06-04 12:07:07 -04:00
read.c
super.c fs: Teach path_connected to handle nfs filesystems with multiple roots. 2018-03-15 18:48:38 -04:00
symlink.c
sysctl.c
unlink.c NFS: Fix up sillyrename() 2018-05-31 15:02:16 -04:00
write.c NFS: Move call to nfs4_state_protect() to nfs4_commit_setup() 2018-05-31 15:02:16 -04:00