Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce0b16dd authored by David Howells's avatar David Howells Committed by Al Viro
Browse files

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: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent c6f493d6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
+9 −9
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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;
}
+1 −1
Original line number Diff line number Diff line
@@ -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;
}