VFS: security/: d_inode() annotations
authorDavid Howells <dhowells@redhat.com>
Thu, 19 Feb 2015 10:47:02 +0000 (10:47 +0000)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 15 Apr 2015 19:06:57 +0000 (15:06 -0400)
... except where that code acts as a filesystem driver, rather than
working with dentries given to it.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
security/apparmor/apparmorfs.c
security/inode.c
security/selinux/selinuxfs.c
security/smack/smackfs.c

index 7db9954f1af2c56c42400746f367f5f4d9906ca8..ad4fa49ad1db23a70dfa16751a9c7f8ec006e854 100644 (file)
@@ -365,7 +365,7 @@ void __aa_fs_profile_rmdir(struct aa_profile *profile)
                if (!profile->dents[i])
                        continue;
 
-               r = profile->dents[i]->d_inode->i_private;
+               r = d_inode(profile->dents[i])->i_private;
                securityfs_remove(profile->dents[i]);
                aa_put_replacedby(r);
                profile->dents[i] = NULL;
index 131a3c49f766444f167f88d19b712ef80ee47a66..91503b79c5f8f8d373920da4b16854c590774799 100644 (file)
@@ -27,7 +27,7 @@ static int mount_count;
 
 static inline int positive(struct dentry *dentry)
 {
-       return dentry->d_inode && !d_unhashed(dentry);
+       return d_really_is_positive(dentry) && !d_unhashed(dentry);
 }
 
 static int fill_super(struct super_block *sb, void *data, int silent)
@@ -102,14 +102,14 @@ struct dentry *securityfs_create_file(const char *name, umode_t mode,
        if (!parent)
                parent = mount->mnt_root;
 
-       dir = parent->d_inode;
+       dir = d_inode(parent);
 
        mutex_lock(&dir->i_mutex);
        dentry = lookup_one_len(name, parent, strlen(name));
        if (IS_ERR(dentry))
                goto out;
 
-       if (dentry->d_inode) {
+       if (d_really_is_positive(dentry)) {
                error = -EEXIST;
                goto out1;
        }
@@ -197,20 +197,20 @@ void securityfs_remove(struct dentry *dentry)
                return;
 
        parent = dentry->d_parent;
-       if (!parent || !parent->d_inode)
+       if (!parent || d_really_is_negative(parent))
                return;
 
-       mutex_lock(&parent->d_inode->i_mutex);
+       mutex_lock(&d_inode(parent)->i_mutex);
        if (positive(dentry)) {
-               if (dentry->d_inode) {
+               if (d_really_is_positive(dentry)) {
                        if (d_is_dir(dentry))
-                               simple_rmdir(parent->d_inode, dentry);
+                               simple_rmdir(d_inode(parent), dentry);
                        else
-                               simple_unlink(parent->d_inode, dentry);
+                               simple_unlink(d_inode(parent), dentry);
                        dput(dentry);
                }
        }
-       mutex_unlock(&parent->d_inode->i_mutex);
+       mutex_unlock(&d_inode(parent)->i_mutex);
        simple_release_fs(&mount, &mount_count);
 }
 EXPORT_SYMBOL_GPL(securityfs_remove);
index 5fde34326dcf28312ab4c36cb09623ecb811760b..d2787cca1fcb94aea94f73f1535d4a57f2907129 100644 (file)
@@ -1737,7 +1737,7 @@ static struct dentry *sel_make_dir(struct dentry *dir, const char *name,
        inc_nlink(inode);
        d_add(dentry, inode);
        /* bump link count on parent directory, too */
-       inc_nlink(dir->d_inode);
+       inc_nlink(d_inode(dir));
 
        return dentry;
 }
index bce4e8f1b267cef89501cd5538bdff86940cd81c..2611a651c34453e2309b8ce53896ab8c2d71b853 100644 (file)
@@ -2395,7 +2395,7 @@ static int smk_fill_super(struct super_block *sb, void *data, int silent)
                return rc;
        }
 
-       root_inode = sb->s_root->d_inode;
+       root_inode = d_inode(sb->s_root);
 
        return 0;
 }