]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
convert spufs
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 9 May 2024 20:40:13 +0000 (16:40 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 16 Nov 2025 06:35:04 +0000 (01:35 -0500)
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: Al Viro <viro@zeniv.linux.org.uk>
arch/powerpc/platforms/cell/spufs/inode.c

index 7ec60290abe640b30457915773d776b38e88c827..fc8ccf4dc159bd174834d8b315f9a0fc13772174 100644 (file)
@@ -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);
+               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");