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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250214063306.GD1977892@ZenIV>
Date: Fri, 14 Feb 2025 06:33:06 +0000
From: Al Viro <viro@...iv.linux.org.uk>
To: NeilBrown <neilb@...e.de>
Cc: Christian Brauner <brauner@...nel.org>,
	Trond Myklebust <trondmy@...nel.org>,
	Anna Schumaker <anna@...nel.org>, linux-nfs@...r.kernel.org,
	linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 0/3} Change ->mkdir() and vfs_mkdir() to return a dentry

On Fri, Feb 14, 2025 at 06:13:55AM +0000, Al Viro wrote:
> On Fri, Feb 14, 2025 at 06:00:39AM +0000, Al Viro wrote:
> 
> > 3) I'm pretty sure that NFS is *not* the only filesystem that returns
> > unhashed negative in some success cases; will need to go over the instances
> > to verify that, though.
> 
> Definitely so: in cifs_mkdir() we have
>         if ((server->ops->posix_mkdir) && (tcon->posix_extensions)) {
>                 rc = server->ops->posix_mkdir(xid, inode, mode, tcon, full_path,
>                                               cifs_sb);
>                 d_drop(direntry); /* for time being always refresh inode info */
>                 goto mkdir_out;
>         }
> There might be other cases.  hostfs is definitely like that, I'm pretty
> sure that kernfs is as well...

kernfs is actually playing fast and loose with the calling conventions there;
it does not bother with unhashing and relies upon its ->d_revalidate()
noticing and unhashing the sucker.

Another variant that would work (and follow the calling conventions)
is to have ->lookup() that leaves negatives unhashed and ->mkdir()
not bothering to hash or instantiate.

It really needs a review instance by instance.

And yes, it does look like ->lookup()-like calling conventions end up better,
especially if we make an instance return d_splice_alias() result...

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ