Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
vfs_getxattr() is not suitable for osd. To get security xattr it goes
via:
vfs_getxattr xattr_getsecurity security_inode_getsecurity cap_inode_getsecurity dentry = d_find_any_alias(inode) if (!dentry) return -EINVAL;
and returns -EINVAL because osd object inodes have empty alias list.
So that on RHEL9 the following sequence of commands
touch /mnt/lustre/file setcap CAP_CHOWN=ep /mnt/lustre/file getfattr -d -n security.capability /mnt/lustre/file
fails with:
/mnt/lustre/file: security.capability: Invalid argument
Should be fixed by patch https://review.whamcloud.com/54072 "
LU-17546osd: use __vfs_removexattr".
However, there are still failures being hit with el9.2 and el9.3 servers during "full" test sessions with the latest master, so I don't think this is totally fixed.
This is because LU-17546 does not touch ll_vfs_getxattr, only ll_vfs_setxattr and ll_vfs_removexattr.