I'm posting this to a wider audience now as I think it is close to its final form. I have not included every fs maintainer explicitly (though this patch touches every writable FS) but hope that fsdevel will catch enough of those). I have included the affected clients of vfs_mkdir: nfsd, smb/server, cachefiles, and the filesystems with non-trivial changes: nfs, cephfs, hostfs, fuse. mkdir is unique among object creation interfaces as there can only be one dentry for an directory inode. There is a possibilty of races which could result in the inode created by mkdir already having a dentry when mkdir comes to attach one. To cope with this, three users of vfs_mkdir() sometimes do a lookup to find the correct dentry when the one that was passed in wasn't used. This lookup is clumsy and racy. This patch set changes mkdir interface so that the filesystem can provide the correct dentry. Some times this still requires a look-up which can be racey, but having the filesystem do it limits this to only when it is absolutely necessary. So this series changes ->mkdir and vfs_mkdir() to allow a dentry to be returned, changes a few filesystems to actually return a dentry sometimes, and changes the callers of vfs_mkdir() to use the returned dentry. I think it best if this could all land through the VFS tree as ask maitainers of: cachefiles nfsd smb/server hostfs ceph nfs fuse to provide a Reviewed-by. Thanks, NeilBrown