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 return -EINVAL because osd object inodes have empty alias list.
Use __vfs_getxattr() instead.
Fixes:
b9ef5d1e7f7 ("LU-17546 osd: use __vfs_removexattr")
HPE-bug-id: LUS-12018
Signed-off-by: Vladimir Saveliev <vladimir.saveliev@hpe.com>
Change-Id: I71ed0141ebf5124d4ff0862c24fd719f29d883ae
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55917
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Qian Yingjin <qian@ddn.com>
const char *name,
void *value, size_t size)
{
-#if defined(HAVE_MNT_IDMAP_ARG) || defined(HAVE_USER_NAMESPACE_ARG)
- return vfs_getxattr(&nop_mnt_idmap, dentry, name, value, size);
-#elif defined(HAVE_VFS_SETXATTR)
+#if defined(HAVE_MNT_IDMAP_ARG) || defined(HAVE_USER_NAMESPACE_ARG) || \
+ defined(HAVE_VFS_SETXATTR)
return __vfs_getxattr(dentry, inode, name, value, size);
#else
if (unlikely(!inode->i_op->getxattr))
init_logging
ALWAYS_EXCEPT="$SANITY_SEC_EXCEPT "
-if [[ "$MDS1_OS_ID_LIKE" =~ "rhel" ]] &&
- (( $MDS1_OS_VERSION_CODE >= $(version_code 9.3) )); then
- always_except LU-16915 51
-fi
[[ "$SLOW" == "no" ]] && EXCEPT_SLOW="26"