summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Dionne <marc.dionne@auristor.com>2022-12-02 17:07:01 +0300
committerDavid Howells <dhowells@redhat.com>2023-05-02 19:08:18 +0300
commitd7f74e9a917503ee78f2b603a456d7227cf38919 (patch)
tree152d13093b4d54be0ff57f29628d4a9e61ff7b8a
parent865fdb08197e657c59e74a35fa32362b12397f58 (diff)
downloadlinux-d7f74e9a917503ee78f2b603a456d7227cf38919.tar.xz
afs: Fix updating of i_size with dv jump from server
If the data version returned from the server is larger than expected, the local data is invalidated, but we may still want to note the remote file size. Since we're setting change_size, we have to also set data_changed for the i_size to get updated. Fixes: 3f4aa9818163 ("afs: Fix EOF corruption") Signed-off-by: Marc Dionne <marc.dionne@auristor.com> Signed-off-by: David Howells <dhowells@redhat.com> cc: linux-afs@lists.infradead.org
-rw-r--r--fs/afs/inode.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/afs/inode.c b/fs/afs/inode.c
index b1bdffd5e888..82edd3351734 100644
--- a/fs/afs/inode.c
+++ b/fs/afs/inode.c
@@ -230,6 +230,7 @@ static void afs_apply_status(struct afs_operation *op,
set_bit(AFS_VNODE_ZAP_DATA, &vnode->flags);
}
change_size = true;
+ data_changed = true;
} else if (vnode->status.type == AFS_FTYPE_DIR) {
/* Expected directory change is handled elsewhere so
* that we can locally edit the directory and save on a