提交 ce0b16dd 编写于 作者: D David Howells 提交者: Al Viro

VFS: security/: d_inode() annotations

... except where that code acts as a filesystem driver, rather than
working with dentries given to it.
Signed-off-by: NDavid Howells <dhowells@redhat.com>
Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 c6f493d6
...@@ -365,7 +365,7 @@ void __aa_fs_profile_rmdir(struct aa_profile *profile) ...@@ -365,7 +365,7 @@ void __aa_fs_profile_rmdir(struct aa_profile *profile)
if (!profile->dents[i]) if (!profile->dents[i])
continue; continue;
r = profile->dents[i]->d_inode->i_private; r = d_inode(profile->dents[i])->i_private;
securityfs_remove(profile->dents[i]); securityfs_remove(profile->dents[i]);
aa_put_replacedby(r); aa_put_replacedby(r);
profile->dents[i] = NULL; profile->dents[i] = NULL;
......
...@@ -27,7 +27,7 @@ static int mount_count; ...@@ -27,7 +27,7 @@ static int mount_count;
static inline int positive(struct dentry *dentry) 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) 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, ...@@ -102,14 +102,14 @@ struct dentry *securityfs_create_file(const char *name, umode_t mode,
if (!parent) if (!parent)
parent = mount->mnt_root; parent = mount->mnt_root;
dir = parent->d_inode; dir = d_inode(parent);
mutex_lock(&dir->i_mutex); mutex_lock(&dir->i_mutex);
dentry = lookup_one_len(name, parent, strlen(name)); dentry = lookup_one_len(name, parent, strlen(name));
if (IS_ERR(dentry)) if (IS_ERR(dentry))
goto out; goto out;
if (dentry->d_inode) { if (d_really_is_positive(dentry)) {
error = -EEXIST; error = -EEXIST;
goto out1; goto out1;
} }
...@@ -197,20 +197,20 @@ void securityfs_remove(struct dentry *dentry) ...@@ -197,20 +197,20 @@ void securityfs_remove(struct dentry *dentry)
return; return;
parent = dentry->d_parent; parent = dentry->d_parent;
if (!parent || !parent->d_inode) if (!parent || d_really_is_negative(parent))
return; return;
mutex_lock(&parent->d_inode->i_mutex); mutex_lock(&d_inode(parent)->i_mutex);
if (positive(dentry)) { if (positive(dentry)) {
if (dentry->d_inode) { if (d_really_is_positive(dentry)) {
if (d_is_dir(dentry)) if (d_is_dir(dentry))
simple_rmdir(parent->d_inode, dentry); simple_rmdir(d_inode(parent), dentry);
else else
simple_unlink(parent->d_inode, dentry); simple_unlink(d_inode(parent), dentry);
dput(dentry); dput(dentry);
} }
} }
mutex_unlock(&parent->d_inode->i_mutex); mutex_unlock(&d_inode(parent)->i_mutex);
simple_release_fs(&mount, &mount_count); simple_release_fs(&mount, &mount_count);
} }
EXPORT_SYMBOL_GPL(securityfs_remove); EXPORT_SYMBOL_GPL(securityfs_remove);
......
...@@ -1737,7 +1737,7 @@ static struct dentry *sel_make_dir(struct dentry *dir, const char *name, ...@@ -1737,7 +1737,7 @@ static struct dentry *sel_make_dir(struct dentry *dir, const char *name,
inc_nlink(inode); inc_nlink(inode);
d_add(dentry, inode); d_add(dentry, inode);
/* bump link count on parent directory, too */ /* bump link count on parent directory, too */
inc_nlink(dir->d_inode); inc_nlink(d_inode(dir));
return dentry; return dentry;
} }
......
...@@ -2395,7 +2395,7 @@ static int smk_fill_super(struct super_block *sb, void *data, int silent) ...@@ -2395,7 +2395,7 @@ static int smk_fill_super(struct super_block *sb, void *data, int silent)
return rc; return rc;
} }
root_inode = sb->s_root->d_inode; root_inode = d_inode(sb->s_root);
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册