summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Rosenberg <drosen@google.com>2017-03-09 21:24:58 -0800
committerDaniel Rosenberg <drosen@google.com>2017-04-11 19:58:23 -0700
commit0d206690e56a8245813aaad5ec037be130d74d3d (patch)
treeae4f363447175405c4f7d5ae12c93fc224c7b343
parent3e803e9b79550065d87dcf9a81da1d931e121d89 (diff)
downloadx86_64-0d206690e56a8245813aaad5ec037be130d74d3d.tar.gz
ANDROID: sdcardfs: copy lower inode attributes in ->ioctl
Adapted from wrapfs commit fbc9c6f83ea6 ("Wrapfs: copy lower inode attributes in ->ioctl") commit e97d8e26cc9e ("Wrapfs: use file_inode helper") Some ioctls (e.g., EXT2_IOC_SETFLAGS) can change inode attributes, so copy them from lower inode. Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu> Signed-off-by: Daniel Rosenberg <drosen@google.com> Bug: 35766959 Change-Id: I0f12684b9dbd4088b4a622c7ea9c03087f40e572
-rwxr-xr-xfs/sdcardfs/file.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/sdcardfs/file.c b/fs/sdcardfs/file.c
index d193d64e30e8..f0befee6bc27 100755
--- a/fs/sdcardfs/file.c
+++ b/fs/sdcardfs/file.c
@@ -113,6 +113,10 @@ static long sdcardfs_unlocked_ioctl(struct file *file, unsigned int cmd,
if (lower_file->f_op->unlocked_ioctl)
err = lower_file->f_op->unlocked_ioctl(lower_file, cmd, arg);
+ /* some ioctls can change inode attributes (EXT2_IOC_SETFLAGS) */
+ if (!err)
+ sdcardfs_copy_and_fix_attrs(file_inode(file),
+ file_inode(lower_file));
out:
return err;
}