> int vfs_mknod(struct mnt_idmap *, struct inode *, struct dentry *, > - umode_t, dev_t); > + umode_t, dev_t, struct inode **); So we will have at least the following helpers with an additional delegated inode argument. vfs_unlink() vfs_link() notify_change() vfs_create() vfs_mknod() vfs_mkdir() vfs_rmdir() >From looking at callers all these helpers will be called with non-NULL delegated inode argument in vfs only. Unless it is generally conceivable that other callers will want to pass a non-NULL inode argument over time it might make more sense to add vfs_<operation>_delegated() or __vfs_<operation>() and make vfs_mknod() and friends exported wrappers around it. I mean it's a matter of preference ultimately but this seems cleaner to me. So at least for the new ones we should consider it. Would also make the patch smaller. > int vfs_symlink(struct mnt_idmap *, struct inode *, > struct dentry *, const char *); > int vfs_link(struct dentry *, struct mnt_idmap *, struct inode *, > @@ -1879,7 +1879,7 @@ static inline int vfs_whiteout(struct mnt_idmap *idmap, > struct inode *dir, struct dentry *dentry) > { > return vfs_mknod(idmap, dir, dentry, S_IFCHR | WHITEOUT_MODE, > - WHITEOUT_DEV); > + WHITEOUT_DEV, NULL); > } > > struct file *kernel_tmpfile_open(struct mnt_idmap *idmap, > diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c > index 0748e7ea5210..34fbcc90c984 100644 > --- a/net/unix/af_unix.c > +++ b/net/unix/af_unix.c > @@ -1227,7 +1227,7 @@ static int unix_bind_bsd(struct sock *sk, struct sockaddr_un *sunaddr, > idmap = mnt_idmap(parent.mnt); > err = security_path_mknod(&parent, dentry, mode, 0); > if (!err) > - err = vfs_mknod(idmap, d_inode(parent.dentry), dentry, mode, 0); > + err = vfs_mknod(idmap, d_inode(parent.dentry), dentry, mode, 0, NULL); > if (err) > goto out_path; > err = mutex_lock_interruptible(&u->bindlock); > > -- > 2.44.0 >