Always update remote_i_size in v9fs_stat2inode*() if the size is available,
even if we are asked not to update i_isize

Suggested-by: Dominique Martinet <[email protected]>
Link: https://lore.kernel.org/r/[email protected]/
Signed-off-by: David Howells <[email protected]>
cc: Eric Van Hensbergen <[email protected]>
cc: Latchesar Ionkov <[email protected]>
cc: Christian Schoenebeck <[email protected]>
cc: [email protected]
cc: [email protected]
cc: [email protected]
---
 fs/9p/vfs_inode_dotl.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c
index 3505227e1704..aa3a77bb5e86 100644
--- a/fs/9p/vfs_inode_dotl.c
+++ b/fs/9p/vfs_inode_dotl.c
@@ -684,10 +684,10 @@ v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct 
inode *inode,
                        mode |= inode->i_mode & ~S_IALLUGO;
                        inode->i_mode = mode;
                }
-               if (!(flags & V9FS_STAT2INODE_KEEP_ISIZE) &&
-                   stat->st_result_mask & P9_STATS_SIZE) {
+               if (stat->st_result_mask & P9_STATS_SIZE) {
                        v9inode->netfs.remote_i_size = stat->st_size;
-                       v9fs_i_size_write(inode, stat->st_size);
+                       if (!(flags & V9FS_STAT2INODE_KEEP_ISIZE))
+                               v9fs_i_size_write(inode, stat->st_size);
                }
                if (stat->st_result_mask & P9_STATS_BLOCKS)
                        inode->i_blocks = stat->st_blocks;

Reply via email to