[the first couple of commits is shared with #work.simple_recursive_removal] The following changes since commit 19272b37aa4f83ca52bdf9c16d5d81bdd1354494: Linux 6.16-rc1 (2025-06-08 13:44:43 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git tags/pull-rpc_pipefs for you to fetch changes up to 350db61fbeb940502a16e74153ee5954d03622e9: rpc_create_client_dir(): return 0 or -E... (2025-07-02 22:44:55 -0400) ---------------------------------------------------------------- Massage rpc_pipefs to use saner primitives and clean up the APIs provided to the rest of the kernel. ---------------------------------------------------------------- Al Viro (18): simple_recursive_removal(): saner interaction with fsnotify better lockdep annotations for simple_recursive_removal() new helper: simple_start_creating() rpc_pipe: clean failure exits in fill_super rpc_{rmdir_,}depopulate(): use simple_recursive_removal() instead rpc_unlink(): use simple_recursive_removal() rpc_populate(): lift cleanup into callers rpc_unlink(): saner calling conventions rpc_mkpipe_dentry(): saner calling conventions rpc_pipe: don't overdo directory locking rpc_pipe: saner primitive for creating subdirectories rpc_pipe: saner primitive for creating regular files rpc_mkpipe_dentry(): switch to simple_start_creating() rpc_gssd_dummy_populate(): don't bother with rpc_populate() rpc_pipe: expand the calls of rpc_mkdir_populate() rpc_new_dir(): the last argument is always NULL rpc_create_client_dir(): don't bother with rpc_populate() rpc_create_client_dir(): return 0 or -E... fs/debugfs/inode.c | 21 +- fs/libfs.c | 34 ++- fs/nfs/blocklayout/rpc_pipefs.c | 53 ++-- fs/nfs/nfs4idmap.c | 14 +- fs/nfsd/nfs4recover.c | 49 ++-- fs/tracefs/inode.c | 15 +- include/linux/fs.h | 1 + include/linux/sunrpc/rpc_pipe_fs.h | 6 +- net/sunrpc/auth_gss/auth_gss.c | 13 +- net/sunrpc/clnt.c | 36 +-- net/sunrpc/rpc_pipe.c | 530 ++++++++++--------------------------- 11 files changed, 230 insertions(+), 542 deletions(-)