OSDN Git Service

ANDROID: xattr: Pass EOPNOTSUPP to permission2
authorDaniel Rosenberg <drosen@google.com>
Tue, 23 Jan 2018 22:34:38 +0000 (14:34 -0800)
committerDaniel Rosenberg <drosen@google.com>
Wed, 24 Jan 2018 21:14:17 +0000 (13:14 -0800)
The permission call for xattr operations happens regardless of
whether or not the xattr functions are implemented.

The xattr functions currently don't have support for permission2.
Passing EOPNOTSUPP as the mount point in xattr_permission allows
us to return EOPNOTSUPP early in permission2, if the filesystem
supports it.

Change-Id: I9d07e4cd633cf40af60450ffbff7ac5c1b4e8c2c
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 35848445

fs/sdcardfs/inode.c
fs/xattr.c

index 36c3659..3ef3487 100644 (file)
@@ -625,6 +625,8 @@ static int sdcardfs_permission(struct vfsmount *mnt, struct inode *inode, int ma
        struct inode tmp;
        struct sdcardfs_inode_data *top = top_data_get(SDCARDFS_I(inode));
 
+       if (IS_ERR(mnt))
+               return PTR_ERR(mnt);
        if (!top)
                return -EINVAL;
 
index 76f01bf..a40f49c 100644 (file)
@@ -70,7 +70,7 @@ xattr_permission(struct inode *inode, const char *name, int mask)
                        return -EPERM;
        }
 
-       return inode_permission(inode, mask);
+       return inode_permission2(ERR_PTR(-EOPNOTSUPP), inode, mask);
 }
 
 /**