[GIT PULL] vfs fixes

From: Christian Brauner
Date: Thu May 25 2023 - 08:23:08 EST


Hey Linus,

/* Summary */
This contains a small set of fixes:

* During the acl rework we merged this cycle the generic_listxattr()
helper had to be modified in a way that in principle it would allow
for POSIX ACLs to be reported. At least that was the impression we had
initially. Because before the acl rework POSIX ACLs would be reported
if the filesystem did have POSIX ACL xattr handlers in sb->s_xattr.
That logic changed and now we can simply check whether the superblock
has SB_POSIXACL set and if the inode has inode->i_{default_}acl set
report the appropriate POSIX ACL name.

However, we didn't realize that generic_listxattr() was only ever used
by two filesystems. Both of them don't support POSIX ACLs via
sb->s_xattr handlers and so never reported POSIX ACLs via
generic_listxattr() even if they raised SB_POSIXACL and did contain
inodes which had acls set. The example here is nfs4. So
generic_listxattr() suddenly started reporting POSIX ACLs when it
wouldn't have before.
Since SB_POSIXACL implies that the umask isn't stripped in the VFS
nfs4 can't just drop SB_POSIXACL from the superblock as it would also
alter umask handling for them. So just have generic_listxattr() not
report POSIX ACLs as it never did anyway. It's documented as such.

* Our SB_* flags currently use a signed integer and we shift the last
bit causing UBSAN to complain about undefined behavior. Switch to
using unsigned. While the original patch used an explicit unsigned
bitshift it's now pretty common to rely on the BIT() macro in a lot of
headers nowadays. So the patch has been adjusted to use that.

* Add Namjae as ntfs reviewer. They're already active this cycle so
let's make it explicit right now.

/* Testing */
clang: Ubuntu clang version 15.0.7
gcc: (Ubuntu 12.2.0-3ubuntu1) 12.2.0

All patches are based on 6.4-rc2 and have been sitting in linux-next.
No build failures or warnings were observed. All old and new tests in
fstests, selftests, and LTP pass without 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 f1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6:

Linux 6.4-rc2 (2023-05-14 12:51:40 -0700)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs/v6.4-rc3/misc.fixes

for you to fetch changes up to 48524463f807ec516a291bdf717dcf2c8e059f51:

ntfs: Add myself as a reviewer (2023-05-17 15:25:21 +0200)

Please consider pulling these changes from the signed vfs/v6.4-rc2/misc.fixes tag.

Thanks!
Christian

----------------------------------------------------------------
vfs/v6.4-rc2/misc.fixes

----------------------------------------------------------------
Hao Ge (1):
fs: fix undefined behavior in bit shift for SB_NOUSER

Jeff Layton (1):
fs: don't call posix_acl_listxattr in generic_listxattr

Namjae Jeon (1):
ntfs: Add myself as a reviewer

MAINTAINERS | 1 +
fs/xattr.c | 15 +++++++++------
include/linux/fs.h | 42 +++++++++++++++++++++---------------------
3 files changed, 31 insertions(+), 27 deletions(-)