Introduce write_threads, write_version and write_ports netlink commands similar to the ones available through the procfs. Changes since v8: - introduce scope parameter to write_thread command - add the capability to specity multiple threads in write_thread for future usage - fix comments Changes since v7: - add gracetime and leasetime to threads-{set,get} command - rely on nla_nest_start instead of nla_nest_start_noflag Changes since v6: - add the capability to pass sockaddr from userspace through listener-set command - rebase on top of nfsd-next Changes since v5: - for write_ports and write_version commands, userspace is expected to provide a NFS listeners/supported versions list it want to enable (all the other ports/versions will be disabled). - fix comments - rebase on top of nfsd-next Changes since v4: - rebase on top of nfsd-next tree Changes since v3: - drop write_maxconn and write_maxblksize for the moment - add write_version and write_ports commands Changes since v2: - use u32 to store nthreads in nfsd_nl_threads_set_doit - rename server-attr in control-plane in nfsd.yaml specs Changes since v1: - remove write_v4_end_grace command - add write_maxblksize and write_maxconn netlink commands This patch can be tested with user-space tool reported below: https://patchwork.kernel.org/project/linux-nfs/cover/20240412-nfsdctl-v1-0-efd6dcebcc04@xxxxxxxxxx/ Jeff Layton (3): NFSD: move nfsd_mutex handling into nfsd_svc callers NFSD: allow callers to pass in scope string to nfsd_svc SUNRPC: add a new svc_find_listener helper Lorenzo Bianconi (4): NFSD: convert write_threads to netlink command NFSD: add write_version to netlink command SUNRPC: introduce svc_xprt_create_from_sa utility routine NFSD: add listener-{set,get} netlink command Documentation/netlink/specs/nfsd.yaml | 110 ++++++ fs/nfsd/netlink.c | 66 ++++ fs/nfsd/netlink.h | 10 + fs/nfsd/netns.h | 1 + fs/nfsd/nfsctl.c | 517 +++++++++++++++++++++++++- fs/nfsd/nfsd.h | 2 +- fs/nfsd/nfssvc.c | 11 +- include/linux/sunrpc/svc_xprt.h | 5 + include/uapi/linux/nfsd_netlink.h | 47 +++ net/sunrpc/svc_xprt.c | 167 ++++++--- 10 files changed, 870 insertions(+), 66 deletions(-) -- 2.44.0