linux/fs/nfs
Trond Myklebust 7dc72d5f7a NFS: Fix inode corruption in nfs_prime_dcache()
Due to inode number reuse in filesystems, we can end up corrupting the
inode on our client if we apply the file attributes without ensuring that
the filehandle matches.
Typical symptoms include spurious "mode changed" reports in the syslog.

We still do want to ensure that we don't invalidate the dentry if the
inode number matches, but we don't have a filehandle.

Fixes: fa9233699c ("NFS: Don't require a filehandle to refresh...")
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: stable@vger.kernel.org # v4.0+
Tested-by: Oleg Drokin <green@linuxhacker.ru>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2016-09-27 14:31:52 -04:00
..
blocklayout pnfs/blocklayout: update last_write_offset atomically with extents 2016-08-23 11:41:38 -04:00
filelayout pNFS/files: filelayout_write_done_cb must call nfs_writeback_update_inode() 2016-07-21 09:46:42 -04:00
flexfilelayout pNFS/flexfiles: Fix an Oopsable condition when connection to the DS fails 2016-08-29 15:21:16 -04:00
objlayout mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
cache_lib.c NFS: cache_lib: use complete() instead of complete_all() 2016-09-23 09:40:12 -04:00
cache_lib.h
callback_proc.c nfs: allow blocking locks to be awoken by lock callbacks 2016-09-22 15:54:27 -04:00
callback_xdr.c nfs: add handling for CB_NOTIFY_LOCK in client 2016-09-22 13:56:04 -04:00
callback.c NFSv4.x: Add kernel parameter to control the callback server 2016-09-19 13:08:36 -04:00
callback.h nfs: add handling for CB_NOTIFY_LOCK in client 2016-09-22 13:56:04 -04:00
client.c pnfs: add a new mechanism to select a layout driver according to an ordered list 2016-09-19 13:11:13 -04:00
delegation.c NFSv4: Use the right stateid for delegations in setattr, read and write 2016-05-17 15:48:07 -04:00
delegation.h NFSv4: Use the right stateid for delegations in setattr, read and write 2016-05-17 15:48:07 -04:00
dir.c NFS: Fix inode corruption in nfs_prime_dcache() 2016-09-27 14:31:52 -04:00
direct.c NFS: direct: use complete() instead of complete_all() 2016-09-23 09:14:16 -04:00
dns_resolve.c NFS: Enabling v4.2 should not recompile nfsd and lockd 2013-11-19 16:20:40 -05:00
dns_resolve.h
file.c nfs: eliminate pointless and confusing do_vfs_lock wrappers 2016-09-22 13:56:04 -04:00
fscache-index.c NFS: Fabricate fscache server index key correctly 2014-09-25 21:25:18 -04:00
fscache.c nfs: define nfs_inc_fscache_stats and using it as possible 2014-11-24 20:08:47 -05:00
fscache.h
getroot.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
inode.c pNFS: Actively set attributes as invalid if LAYOUTCOMMIT is outstanding 2016-07-28 14:49:08 -04:00
internal.h nfs: cover ->migratepage with CONFIG_MIGRATION 2016-09-20 09:29:39 -04:00
io.c NFS: Do not serialise O_DIRECT reads and writes 2016-07-05 19:11:04 -04:00
iostat.h nfs: define nfs_inc_fscache_stats and using it as possible 2014-11-24 20:08:47 -05:00
Kconfig kernel: conditionally support non-root users, groups and capabilities 2015-04-15 16:35:22 -07:00
Makefile NFS: Do not serialise O_DIRECT reads and writes 2016-07-05 19:11:04 -04:00
mount_clnt.c NFS: Remove unneeded NFS_DEBUG checking before define NFSDBG_FACILITY 2015-10-21 15:49:23 -05:00
namespace.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
netns.h pnfs/blocklayout: serialize GETDEVICEINFO calls 2014-11-12 14:22:52 -05:00
nfs2super.c
nfs2xdr.c nfs: save server READ/WRITE/COMMIT status 2015-02-03 11:06:40 -08:00
nfs3_fs.h nfsv3: introduce nfs3_set_ds_client 2015-02-03 11:06:34 -08:00
nfs3acl.c posix_acl: Inode acl caching fixes 2016-03-31 00:30:15 -04:00
nfs3client.c nfs4: flexfiles: respect noresvport when establishing connections to DSes 2016-07-19 16:23:25 -04:00
nfs3proc.c qstr: constify instances in nfs 2016-07-20 23:30:06 -04:00
nfs3super.c nfsv3: introduce nfs3_set_ds_client 2015-02-03 11:06:34 -08:00
nfs3xdr.c xprtrdma: Fix large NFS SYMLINK calls 2015-08-05 16:21:28 -04:00
nfs4_fs.h NFSv4.1: Don't deadlock the state manager on the SEQUENCE status flags 2016-09-27 14:31:27 -04:00
nfs4client.c nfs: allow blocking locks to be awoken by lock callbacks 2016-09-22 15:54:27 -04:00
nfs4file.c NFSv4: Revert "Truncating file opens should also sync O_DIRECT writes" 2016-07-14 12:42:40 -04:00
nfs4getroot.c nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh 2015-07-01 11:31:22 -04:00
nfs4idmap.c KEYS: Add a facility to restrict new links into a keyring 2016-04-11 22:37:37 +01:00
nfs4idmap.h NFS: Move nfs_idmap.h into fs/nfs/ 2015-04-23 15:16:14 -04:00
nfs4namespace.c qstr: constify instances in nfs 2016-07-20 23:30:06 -04:00
nfs4proc.c NFSv4.1: Don't deadlock the state manager on the SEQUENCE status flags 2016-09-27 14:31:27 -04:00
nfs4renewd.c NFSv4: Cap the transport reconnection timer at 1/2 lease period 2016-08-05 19:22:22 -04:00
nfs4session.c NFSv4.1: Delay callback processing when there are referring triples 2016-08-28 14:23:26 -04:00
nfs4session.h NFSv4.1: Don't deadlock the state manager on the SEQUENCE status flags 2016-09-27 14:31:27 -04:00
nfs4state.c NFSv4.1: Don't deadlock the state manager on the SEQUENCE status flags 2016-09-27 14:31:27 -04:00
nfs4super.c NFS: Move nfs_idmap.h into fs/nfs/ 2015-04-23 15:16:14 -04:00
nfs4sysctl.c nfs: do not initialise statics to 0 2015-12-28 09:57:15 -05:00
nfs4trace.c pNFS: Modify pnfs_update_layout tracepoints to use layout stateid 2015-12-28 09:57:14 -05:00
nfs4trace.h tracing: Use __get_str() when manipulating strings 2016-07-15 15:52:20 -04:00
nfs4xdr.c pnfs: add a new mechanism to select a layout driver according to an ordered list 2016-09-19 13:11:13 -04:00
nfs42.h NFS: Add COPY nfs operation 2016-05-17 15:47:55 -04:00
nfs42proc.c pNFS: Handle NFS4ERR_OLD_STATEID correctly in LAYOUTSTAT calls 2016-08-19 16:27:31 -04:00
nfs42xdr.c NFSv4.2: Fix warning "variable ‘stateids’ set but not used" 2016-07-24 17:36:06 -04:00
nfs.h
nfsroot.c nfsroot: make nfsroot to accept the 1024 bytes long directory name 2015-10-21 15:49:19 -05:00
nfstrace.c NFSv4: Allow tracing of NFSv4 fsync calls 2015-03-27 12:39:34 -04:00
nfstrace.h NFS client updates for Linux 4.8 2016-07-30 16:33:25 -07:00
pagelist.c NFS: Add nfs_commit_file() 2016-05-17 15:47:55 -04:00
pnfs_dev.c NFSv4.1: Don't cache deviceids that have no notifications 2015-03-27 12:32:24 -04:00
pnfs_nfs.c NFS pnfs data server multipath session trunking 2016-09-19 13:08:37 -04:00
pnfs.c pnfs: add a new mechanism to select a layout driver according to an ordered list 2016-09-19 13:11:13 -04:00
pnfs.h pnfs: add a new mechanism to select a layout driver according to an ordered list 2016-09-19 13:11:13 -04:00
proc.c qstr: constify instances in nfs 2016-07-20 23:30:06 -04:00
read.c NFS: Fix a double page unlock 2016-06-24 12:01:00 -04:00
super.c NFSv4.x: Add kernel parameter to control the callback server 2016-09-19 13:08:36 -04:00
symlink.c switch ->get_link() to delayed_call, kill ->put_link() 2015-12-30 13:01:03 -05:00
sysctl.c nfs: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
unlink.c qstr: constify instances in nfs 2016-07-20 23:30:06 -04:00
write.c NFS client updates for Linux 4.8 2016-07-30 16:33:25 -07:00