```
commit 0e359e5d712e3abcf8056b43da12f092c37e9f21
Author: Al Viro <[email protected]>

convert spufs

This commit converts spufs to use d_make_persistent() instead of d_add()
and d_instantiate(). The conversion includes making dput() unconditional
in callers and changing from kill_litter_super to kill_anon_super.

> diff --git a/arch/powerpc/platforms/cell/spufs/inode.c 
> b/arch/powerpc/platforms/cell/spufs/inode.c
> index 7ec60290a..f21f7a76e 100644
> --- a/arch/powerpc/platforms/cell/spufs/inode.c
> +++ b/arch/powerpc/platforms/cell/spufs/inode.c

[ ... ]

> @@ -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);

[ ... ]

> @@ -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));
> +     d_make_persistent(dentry, inode);
>       return ret;

In spufs_mkgang(), can this call inc_nlink(d_inode(dentry)) before
d_make_persistent() instantiates the dentry? The dentry is not
instantiated until d_make_persistent() is called, so d_inode(dentry)
returns NULL here.

In the old code, d_instantiate() was called first, then
inc_nlink(d_inode(dentry)). For comparison, spufs_mkdir() uses
inc_nlink(inode) directly instead of inc_nlink(d_inode(dentry)).

[ ... ]


```

---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md

In-Reply-To-Subject: `convert spufs`
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/18860600716

Reply via email to