diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-04-12 15:55:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-04-12 15:55:50 -0400 |
commit | a1bf4c7da62fcadea065f7c9a561d61c26ea4882 (patch) | |
tree | c65ec96ff63e800cab155df758751026accd4306 /fs/nfs/write.c | |
parent | 7214dd4ea9048d2031e14fc552980cecd6573a9e (diff) | |
parent | 98de9ce6f6660d02aa72d7b9b17696fa68a2ed9b (diff) |
Merge tag 'nfs-for-4.17-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
Pull NFS client updates from Anna Schumaker:
"Stable bugfixes:
- xprtrdma: Fix corner cases when handling device removal # v4.12+
- xprtrdma: Fix latency regression on NUMA NFS/RDMA clients # v4.15+
Features:
- New sunrpc tracepoint for RPC pings
- Finer grained NFSv4 attribute checking
- Don't unnecessarily return NFS v4 delegations
Other bugfixes and cleanups:
- Several other small NFSoRDMA cleanups
- Improvements to the sunrpc RTT measurements
- A few sunrpc tracepoint cleanups
- Various fixes for NFS v4 lock notifications
- Various sunrpc and NFS v4 XDR encoding cleanups
- Switch to the ida_simple API
- Fix NFSv4.1 exclusive create
- Forget acl cache after setattr operation
- Don't advance the nfs_entry readdir cookie if xdr decoding fails"
* tag 'nfs-for-4.17-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (47 commits)
NFS: advance nfs_entry cookie only after decoding completes successfully
NFSv3/acl: forget acl cache after setattr
NFSv4.1: Fix exclusive create
NFSv4: Declare the size up to date after it was set.
nfs: Use ida_simple API
NFSv4: Fix the nfs_inode_set_delegation() arguments
NFSv4: Clean up CB_GETATTR encoding
NFSv4: Don't ask for attributes when ACCESS is protected by a delegation
NFSv4: Add a helper to encode/decode struct timespec
NFSv4: Clean up encode_attrs
NFSv4; Clean up XDR encoding of type bitmap4
NFSv4: Allow GFP_NOIO sleeps in decode_attr_owner/decode_attr_group
SUNRPC: Add a helper for encoding opaque data inline
SUNRPC: Add helpers for decoding opaque and string types
NFSv4: Ignore change attribute invalidations if we hold a delegation
NFS: More fine grained attribute tracking
NFS: Don't force unnecessary cache invalidation in nfs_update_inode()
NFS: Don't redirty the attribute cache in nfs_wcc_update_inode()
NFS: Don't force a revalidation of all attributes if change is missing
NFS: Convert NFS_INO_INVALID flags to unsigned long
...
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 6579f3b367bd..0193053bc139 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -231,6 +231,7 @@ static void nfs_grow_file(struct page *page, unsigned int offset, unsigned int c | |||
231 | if (i_size >= end) | 231 | if (i_size >= end) |
232 | goto out; | 232 | goto out; |
233 | i_size_write(inode, end); | 233 | i_size_write(inode, end); |
234 | NFS_I(inode)->cache_validity &= ~NFS_INO_INVALID_SIZE; | ||
234 | nfs_inc_stats(inode, NFSIOS_EXTENDWRITE); | 235 | nfs_inc_stats(inode, NFSIOS_EXTENDWRITE); |
235 | out: | 236 | out: |
236 | spin_unlock(&inode->i_lock); | 237 | spin_unlock(&inode->i_lock); |
@@ -1562,8 +1563,11 @@ static int nfs_writeback_done(struct rpc_task *task, | |||
1562 | } | 1563 | } |
1563 | 1564 | ||
1564 | /* Deal with the suid/sgid bit corner case */ | 1565 | /* Deal with the suid/sgid bit corner case */ |
1565 | if (nfs_should_remove_suid(inode)) | 1566 | if (nfs_should_remove_suid(inode)) { |
1566 | nfs_mark_for_revalidate(inode); | 1567 | spin_lock(&inode->i_lock); |
1568 | NFS_I(inode)->cache_validity |= NFS_INO_INVALID_OTHER; | ||
1569 | spin_unlock(&inode->i_lock); | ||
1570 | } | ||
1567 | return 0; | 1571 | return 0; |
1568 | } | 1572 | } |
1569 | 1573 | ||