lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 27 Aug 2022 05:37:23 +0100 From: Al Viro <viro@...iv.linux.org.uk> To: NeilBrown <neilb@...e.de> Cc: Linus Torvalds <torvalds@...ux-foundation.org>, Daire Byrne <daire@...g.com>, Trond Myklebust <trond.myklebust@...merspace.com>, Chuck Lever <chuck.lever@...cle.com>, Linux NFS Mailing List <linux-nfs@...r.kernel.org>, linux-fsdevel@...r.kernel.org, LKML <linux-kernel@...r.kernel.org> Subject: Re: [PATCH 08/10] NFSD: allow parallel creates from nfsd 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? > + 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() && ... ?
Powered by blists - more mailing lists