Commit ea800a51 authored by Al Viro's avatar Al Viro
Browse files

convert spufs



have spufs_new_file() use d_make_persistent() instead of d_add() and
do an uncondition dput() in the caller; the rest is completely
straightforward.

[a braino in spufs_mkgang() fixed]

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent e11e2476
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -127,7 +127,7 @@ spufs_new_file(struct super_block *sb, struct dentry *dentry,
	inode->i_fop = fops;
	inode->i_size = size;
	inode->i_private = SPUFS_I(inode)->i_ctx = get_spu_context(ctx);
	d_add(dentry, inode);
	d_make_persistent(dentry, inode);
out:
	return ret;
}
@@ -163,10 +163,9 @@ static int spufs_fill_dir(struct dentry *dir,
			return -ENOMEM;
		ret = spufs_new_file(dir->d_sb, dentry, files->ops,
					files->mode & mode, files->size, ctx);
		if (ret) {
		dput(dentry);
		if (ret)
			return ret;
		}
		files++;
	}
	return 0;
@@ -241,11 +240,10 @@ spufs_mkdir(struct inode *dir, struct dentry *dentry, unsigned int flags,

	inode_lock(inode);

	dget(dentry);
	inc_nlink(dir);
	inc_nlink(inode);

	d_instantiate(dentry, inode);
	d_make_persistent(dentry, inode);

	if (flags & SPU_CREATE_NOSCHED)
		ret = spufs_fill_dir(dentry, spufs_dir_nosched_contents,
@@ -479,10 +477,9 @@ spufs_mkgang(struct inode *dir, struct dentry *dentry, umode_t mode)
	inode->i_op = &simple_dir_inode_operations;
	inode->i_fop = &simple_dir_operations;

	d_instantiate(dentry, inode);
	dget(dentry);
	inc_nlink(dir);
	inc_nlink(d_inode(dentry));
	inc_nlink(inode);
	d_make_persistent(dentry, inode);
	return ret;

out_iput:
@@ -780,7 +777,7 @@ static struct file_system_type spufs_type = {
	.name = "spufs",
	.init_fs_context = spufs_init_fs_context,
	.parameters	= spufs_fs_parameters,
	.kill_sb = kill_litter_super,
	.kill_sb = kill_anon_super,
};
MODULE_ALIAS_FS("spufs");