ovl: check for ->listxattr() support
authorChristian Brauner <brauner@kernel.org>
Wed, 1 Feb 2023 13:15:00 +0000 (14:15 +0100)
committerChristian Brauner (Microsoft) <brauner@kernel.org>
Mon, 6 Mar 2023 08:57:13 +0000 (09:57 +0100)
We have decoupled vfs_listxattr() from IOP_XATTR. Instead we just need
to check whether inode->i_op->listxattr is implemented.

Cc: linux-unionfs@vger.kernel.org
Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
fs/overlayfs/copy_up.c

index c14e907..f658cc8 100644 (file)
@@ -81,8 +81,7 @@ int ovl_copy_xattr(struct super_block *sb, const struct path *oldpath, struct de
        int error = 0;
        size_t slen;
 
-       if (!(old->d_inode->i_opflags & IOP_XATTR) ||
-           !(new->d_inode->i_opflags & IOP_XATTR))
+       if (!old->d_inode->i_op->listxattr || !new->d_inode->i_op->listxattr)
                return 0;
 
        list_size = vfs_listxattr(old, NULL, 0);