summaryrefslogtreecommitdiffstats
path: root/fs/fuse/dax.c
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@redhat.com>2021-10-22 17:03:02 +0200
committerMiklos Szeredi <mszeredi@redhat.com>2021-10-28 09:45:32 +0200
commitfa5eee57e33e79b71b40e6950c29cc46f5cc5cb7 (patch)
tree92ed8a392c657de447ef8eb8c3a5f7fc72140542 /fs/fuse/dax.c
parent97f044f690bac2b094bfb7fb2d177ef946c85880 (diff)
downloadlinux-fa5eee57e33e79b71b40e6950c29cc46f5cc5cb7.tar.gz
linux-fa5eee57e33e79b71b40e6950c29cc46f5cc5cb7.tar.bz2
linux-fa5eee57e33e79b71b40e6950c29cc46f5cc5cb7.zip
fuse: selective attribute invalidation
Only invalidate attributes that the operation might have changed. Introduce two constants for common combinations of changed attributes: FUSE_STATX_MODIFY: file contents are modified but not size FUSE_STATX_MODSIZE: size and/or file contents modified Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/fuse/dax.c')
-rw-r--r--fs/fuse/dax.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/fuse/dax.c b/fs/fuse/dax.c
index 281d79f8b3d3..89bf96f4fb10 100644
--- a/fs/fuse/dax.c
+++ b/fs/fuse/dax.c
@@ -735,7 +735,7 @@ static ssize_t fuse_dax_direct_write(struct kiocb *iocb, struct iov_iter *from)
if (ret < 0)
return ret;
- fuse_invalidate_attr(inode);
+ fuse_invalidate_attr_mask(inode, FUSE_STATX_MODSIZE);
fuse_write_update_size(inode, iocb->ki_pos);
return ret;
}