From 9ef501f3295278e1f79c3b2012b4fef0e45e58fb Mon Sep 17 00:00:00 2001 From: Paul Lawrence Date: Thu, 27 Jan 2022 20:44:30 +0000 Subject: [PATCH] ANDROID: fuse-bpf: Fix truncate Maps would crash every second launch. This was caused by maps receiving an incorrect file size after truncate, then mapping the file. Bug: 215486645 Test: fuse_test + launch maps 100 times & look for native crashes Signed-off-by: Paul Lawrence Change-Id: I13b0211330fb48592864ab53f8ffff60c19aab11 --- fs/fuse/backing.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/fuse/backing.c b/fs/fuse/backing.c index 069cb15c4b33..98f65cde6bdc 100644 --- a/fs/fuse/backing.c +++ b/fs/fuse/backing.c @@ -1738,6 +1738,9 @@ int fuse_setattr_backing(struct fuse_args *fa, inode_lock(d_inode(backing_path->dentry)); res = notify_change(backing_path->dentry, &new_attr, NULL); inode_unlock(d_inode(backing_path->dentry)); + + if (res == 0 && (new_attr.ia_valid & ATTR_SIZE)) + i_size_write(dentry->d_inode, new_attr.ia_size); return res; }