diff options
author | David Howells <dhowells@redhat.com> | 2024-06-05 11:26:24 +0100 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2024-09-05 11:00:41 +0200 |
commit | 73425800ac948cb78063b897a0c345d788f3594d (patch) | |
tree | 3bb35f2c20e8e3f0634c86358475e6dae7e50bb7 /fs/netfs | |
parent | 8f52de0077ba3bf41e5d53d67a185700f41efce7 (diff) | |
download | lwn-73425800ac948cb78063b897a0c345d788f3594d.tar.gz lwn-73425800ac948cb78063b897a0c345d788f3594d.zip |
netfs, cifs: Move CIFS_INO_MODIFIED_ATTR to netfs_inode
Move CIFS_INO_MODIFIED_ATTR to netfs_inode as NETFS_ICTX_MODIFIED_ATTR and
then make netfs_perform_write() set it. This means that cifs doesn't need
to implement the ->post_modify() hook.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Paulo Alcantara <pc@manguebit.com>
cc: linux-cifs@vger.kernel.org
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/20240814203850.2240469-7-dhowells@redhat.com/ # v2
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/netfs')
-rw-r--r-- | fs/netfs/buffered_write.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/netfs/buffered_write.c b/fs/netfs/buffered_write.c index 327e5904b090..d7eae597e54d 100644 --- a/fs/netfs/buffered_write.c +++ b/fs/netfs/buffered_write.c @@ -372,8 +372,14 @@ ssize_t netfs_perform_write(struct kiocb *iocb, struct iov_iter *iter, } while (iov_iter_count(iter)); out: - if (likely(written) && ctx->ops->post_modify) - ctx->ops->post_modify(inode); + if (likely(written)) { + /* Set indication that ctime and mtime got updated in case + * close is deferred. + */ + set_bit(NETFS_ICTX_MODIFIED_ATTR, &ctx->flags); + if (unlikely(ctx->ops->post_modify)) + ctx->ops->post_modify(inode); + } if (unlikely(wreq)) { ret2 = netfs_end_writethrough(wreq, &wbc, writethrough); |