cifs: kill more bogus checks in ->...xattr() methods
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 10 Apr 2016 21:07:33 +0000 (17:07 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 10 Apr 2016 21:12:03 +0000 (17:12 -0400)
none of that stuff can ever be called for NULL or negative
dentry.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/cifs/xattr.c

index 612de93..159547c 100644 (file)
@@ -42,19 +42,11 @@ int cifs_removexattr(struct dentry *direntry, const char *ea_name)
        int rc = -EOPNOTSUPP;
 #ifdef CONFIG_CIFS_XATTR
        unsigned int xid;
-       struct cifs_sb_info *cifs_sb;
+       struct cifs_sb_info *cifs_sb = CIFS_SB(direntry->d_sb);
        struct tcon_link *tlink;
        struct cifs_tcon *pTcon;
-       struct super_block *sb;
        char *full_path = NULL;
 
-       if (direntry == NULL)
-               return -EIO;
-       if (d_really_is_negative(direntry))
-               return -EIO;
-       sb = direntry->d_sb;
-
-       cifs_sb = CIFS_SB(sb);
        tlink = cifs_sb_tlink(cifs_sb);
        if (IS_ERR(tlink))
                return PTR_ERR(tlink);
@@ -101,19 +93,12 @@ int cifs_setxattr(struct dentry *direntry, const char *ea_name,
        int rc = -EOPNOTSUPP;
 #ifdef CONFIG_CIFS_XATTR
        unsigned int xid;
-       struct cifs_sb_info *cifs_sb;
+       struct super_block *sb = direntry->d_sb;
+       struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
        struct tcon_link *tlink;
        struct cifs_tcon *pTcon;
-       struct super_block *sb;
        char *full_path;
 
-       if (direntry == NULL)
-               return -EIO;
-       if (d_really_is_negative(direntry))
-               return -EIO;
-       sb = direntry->d_sb;
-
-       cifs_sb = CIFS_SB(sb);
        tlink = cifs_sb_tlink(cifs_sb);
        if (IS_ERR(tlink))
                return PTR_ERR(tlink);
@@ -234,19 +219,12 @@ ssize_t cifs_getxattr(struct dentry *direntry, const char *ea_name,
        ssize_t rc = -EOPNOTSUPP;
 #ifdef CONFIG_CIFS_XATTR
        unsigned int xid;
-       struct cifs_sb_info *cifs_sb;
+       struct super_block *sb = direntry->d_sb;
+       struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
        struct tcon_link *tlink;
        struct cifs_tcon *pTcon;
-       struct super_block *sb;
        char *full_path;
 
-       if (direntry == NULL)
-               return -EIO;
-       if (d_really_is_negative(direntry))
-               return -EIO;
-       sb = direntry->d_sb;
-
-       cifs_sb = CIFS_SB(sb);
        tlink = cifs_sb_tlink(cifs_sb);
        if (IS_ERR(tlink))
                return PTR_ERR(tlink);
@@ -368,19 +346,11 @@ ssize_t cifs_listxattr(struct dentry *direntry, char *data, size_t buf_size)
        ssize_t rc = -EOPNOTSUPP;
 #ifdef CONFIG_CIFS_XATTR
        unsigned int xid;
-       struct cifs_sb_info *cifs_sb;
+       struct cifs_sb_info *cifs_sb = CIFS_SB(direntry->d_sb);
        struct tcon_link *tlink;
        struct cifs_tcon *pTcon;
-       struct super_block *sb;
        char *full_path;
 
-       if (direntry == NULL)
-               return -EIO;
-       if (d_really_is_negative(direntry))
-               return -EIO;
-       sb = direntry->d_sb;
-
-       cifs_sb = CIFS_SB(sb);
        if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
                return -EOPNOTSUPP;