Messages in this thread | | | From | "NeilBrown" <> | Subject | Re: [PATCH 08/10] NFSD: allow parallel creates from nfsd | Date | Mon, 29 Aug 2022 13:12:58 +1000 |
| |
On Sat, 27 Aug 2022, Al Viro wrote: > On Fri, Aug 26, 2022 at 12:10:43PM +1000, NeilBrown wrote: > > > if (is_create_with_attrs(open)) > > nfsd4_acl_to_attr(NF4REG, open->op_acl, &attrs); > > + inode = d_inode(path.dentry); > > > > - inode_lock_nested(inode, I_MUTEX_PARENT); > > + child = filename_create_one_len(open->op_fname, > > + open->op_fnamelen, > > + &path, 0, &wq); > > > > - child = lookup_one_len(open->op_fname, parent, open->op_fnamelen); > > - if (IS_ERR(child)) { > > - status = nfserrno(PTR_ERR(child)); > > - goto out; > > - } > > + if (IS_ERR(child)) > > + return nfserrno(PTR_ERR(child)); > > Leaks acls, by the look of it?
Yep - I think that fell through a crack when I reordered patches to get get some clean-ups into nfsd before this repost.
> > > + if (!IS_PAR_UPDATE(fhp->fh_dentry->d_inode) && > > + inode_trylock_shared(fhp->fh_dentry->d_inode)) { > > + /* only have a shared lock */ > > + inode_unlock_shared(fhp->fh_dentry->d_inode); > > + fhp->fh_no_atomic_attr = true; > > + fhp->fh_no_wcc = true; > > Er... Shouldn't that be IS_PAR_UPDATE() && ... ? > Definitely. Thanks!
NeilBrown
| |