``` 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
