From 192f077c16bf71a29847159a6ed5fa30b240f10e Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 14 Jul 2021 16:51:19 -0700 Subject: [PATCH] Update data_version when fallocate changes size Changing the file size can changes the file contents -- reads will change when they stop returning data. fallocate can change the file size and if it does it should increment the data_version, just like setattr does. Signed-off-by: Zach Brown --- kmod/src/data.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kmod/src/data.c b/kmod/src/data.c index 4717d37e..acce243a 100644 --- a/kmod/src/data.c +++ b/kmod/src/data.c @@ -1031,8 +1031,10 @@ long scoutfs_fallocate(struct file *file, int mode, loff_t offset, loff_t len) end = (iblock + ret) << SCOUTFS_BLOCK_SM_SHIFT; if (end > offset + len) end = offset + len; - if (end > i_size_read(inode)) + if (end > i_size_read(inode)) { i_size_write(inode, end); + scoutfs_inode_inc_data_version(inode); + } } if (ret >= 0) scoutfs_update_inode_item(inode, lock, &ind_locks);