Messages in this thread | | | From | Christian Brauner <> | Subject | [GIT PULL] file_remove_privs() fix for v6.0-rc3 | Date | Tue, 23 Aug 2022 13:10:56 +0200 |
| |
Hey Linus,
/* Summary */ As part of Stefan's and Jens' work to add async buffered write support to xfs we refactored file_remove_privs() and added __file_remove_privs() to avoid calling __remove_privs() when IOCB_NOWAIT is passed.
While debugging a recent performance regression report I found that during review we missed that faf99b563558 ("fs: add __remove_file_privs() with flags parameter") accidently changed behavior when dentry_needs_remove_privs() returns zero. Before the commit it would still call inode_has_no_xattr() setting the S_NOSEC bit and thereby avoiding even calling into dentry_needs_remove_privs() the next time this function is called. After that commit inode_has_no_xattr() would only be called if __remove_privs() had to be called. Restore the old behavior. This is likely the cause of the performance regression.
/* Testing */ All patches are based on v6.0-rc1 and have been sitting in linux-next. No build failures or warnings were observed and fstests, selftests, and LTP have seen no regressions.
/* Conflicts */ At the time of creating this PR no merge conflicts were reported from linux-next and no merge conflicts showed up doing a test-merge with current mainline.
The following changes since commit 568035b01cfb107af8d2e4bd2fb9aea22cf5b868:
Linux 6.0-rc1 (2022-08-14 15:50:18 -0700)
are available in the Git repository at:
ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping.git tags/fs.fixes.v6.0-rc3
for you to fetch changes up to 41191cf6bf565f4139046d7be68ec30c290af92d:
fs: __file_remove_privs(): restore call to inode_has_no_xattr() (2022-08-18 09:39:33 +0200)
Please consider pulling these changes from the signed fs.fixes.v6.0-rc3 tag.
Thanks! Christian
---------------------------------------------------------------- fs.fixes.v6.0-rc3
---------------------------------------------------------------- Stefan Roesch (1): fs: __file_remove_privs(): restore call to inode_has_no_xattr()
fs/inode.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)
| |