Whamcloud - gitweb
LU-18088 osd: use __vfs_getxattr 17/55917/4
authorVladimir Saveliev <vladimir.saveliev@hpe.com>
Fri, 8 Dec 2023 16:55:57 +0000 (19:55 +0300)
committerOleg Drokin <green@whamcloud.com>
Fri, 23 Aug 2024 22:01:42 +0000 (22:01 +0000)
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>
lustre/include/lustre_compat.h
lustre/tests/sanity-sec.sh

index c54eaab..e77df24 100644 (file)
@@ -561,9 +561,8 @@ static inline int ll_vfs_getxattr(struct dentry *dentry, struct inode *inode,
                                  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))
index 867df37..1a641cd 100755 (executable)
@@ -15,10 +15,6 @@ init_test_env $@
 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"