diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2021-10-22 18:03:03 +0300 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2021-10-28 10:45:32 +0300 |
commit | 20235b435a5c8897e46d094454408b6ab7157dbd (patch) | |
tree | f199e64a7740146099728d29f9d82942a7b92bf8 /fs/fuse | |
parent | 484ce65715b06aead8c4901f01ca32c5a240bc71 (diff) | |
download | linux-20235b435a5c8897e46d094454408b6ab7157dbd.tar.xz |
fuse: cleanup code conditional on fc->writeback_cache
It's safe to call file_update_time() if writeback cache is not enabled,
since S_NOCMTIME is set in this case. This part is purely a cleanup.
__fuse_copy_file_range() also calls fuse_write_update_attr() only in the
writeback cache case. This is inconsistent with other callers, where it's
called unconditionally.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/fuse')
-rw-r--r-- | fs/fuse/file.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/fs/fuse/file.c b/fs/fuse/file.c index ddd563fda648..bc450daf27a2 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -211,9 +211,8 @@ void fuse_finish_open(struct inode *inode, struct file *file) i_size_write(inode, 0); spin_unlock(&fi->lock); truncate_pagecache(inode, 0); + file_update_time(file); fuse_invalidate_attr_mask(inode, FUSE_STATX_MODSIZE); - if (fc->writeback_cache) - file_update_time(file); } else if (!(ff->open_flags & FOPEN_KEEP_CACHE)) { invalidate_inode_pages2(inode->i_mapping); } @@ -2986,10 +2985,7 @@ static long fuse_file_fallocate(struct file *file, int mode, loff_t offset, /* we could have extended the file */ if (!(mode & FALLOC_FL_KEEP_SIZE)) { - bool changed = fuse_write_update_attr(inode, offset + length, - length); - - if (changed && fm->fc->writeback_cache) + if (fuse_write_update_attr(inode, offset + length, length)) file_update_time(file); } @@ -3104,13 +3100,8 @@ static ssize_t __fuse_copy_file_range(struct file *file_in, loff_t pos_in, ALIGN_DOWN(pos_out, PAGE_SIZE), ALIGN(pos_out + outarg.size, PAGE_SIZE) - 1); - if (fc->writeback_cache) { - fuse_write_update_attr(inode_out, pos_out + outarg.size, - outarg.size); - file_update_time(file_out); - } - - fuse_invalidate_attr_mask(inode_out, FUSE_STATX_MODSIZE); + file_update_time(file_out); + fuse_write_update_attr(inode_out, pos_out + outarg.size, outarg.size); err = outarg.size; out: |