Hello Linus - The following changes since commit 0dd3ee31125508cd67f7e7172247f05b7fd1753a: Linux 6.7 (2024-01-07 12:18:38 -0800) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-6.8 for you to fetch changes up to 17419aefcbfd9891863e8b8132f0bca9a6b2984e: nfsd: rename nfsd_last_thread() to nfsd_destroy_serv() (2024-01-07 17:54:33 -0500) ---------------------------------------------------------------- NFSD 6.8 Release Notes The bulk of the patches for this release are clean-ups and minor bug fixes. There is one significant revert to mention: support for RDMA Read operations in the server's RPC-over-RDMA transport implementation has been fixed so it waits for Read completion in a way that avoids tying up an nfsd thread. This prevents a possible DoS vector if an RPC-over-RDMA client should become unresponsive during RDMA Read operations. As always I am grateful to NFSD contributors, reviewers, and testers. ---------------------------------------------------------------- ChenXiaoSong (1): NFSv4, NFSD: move enum nfs_cb_opnum4 to include/linux/nfs4.h Chuck Lever (48): NFSD: Make the file_delayed_close workqueue UNBOUND NFSD: Remove nfsd_drc_gc() tracepoint NFSD: Document lack of f_pos_lock in nfsd_readdir() SUNRPC: Add a server-side API for retrieving an RPC's pseudoflavor NFSD: Replace RQ_SPLICE_OK in nfsd_read() NFSD: Modify NFSv4 to use nfsd_read_splice_ok() SUNRPC: Remove RQ_SPLICE_OK svcrdma: Eliminate allocation of recv_ctxt objects in backchannel svcrdma: Pre-allocate svc_rdma_recv_ctxt objects svcrdma: Add a utility workqueue to svcrdma svcrdma: Add an async version of svc_rdma_send_ctxt_put() svcrdma: Add an async version of svc_rdma_write_info_free() svcrdma: Clean up locking svcrdma: Add lockdep class keys for transport locks rpcrdma: Introduce a simple cid tracepoint class svcrdma: SQ error tracepoints should report completion IDs svcrdma: DMA error tracepoints should report completion IDs svcrdma: Update some svcrdma DMA-related tracepoints svcrdma: Reduce size of struct svc_rdma_rw_ctxt svcrdma: Acquire the svcxprt_rdma pointer from the CQ context svcrdma: Explicitly pass the transport into Write chunk I/O paths svcrdma: Explicitly pass the transport into Read chunk I/O paths svcrdma: Explicitly pass the transport to svc_rdma_post_chunk_ctxt() svcrdma: Pass a pointer to the transport to svc_rdma_cc_release() svcrdma: Remove the svc_rdma_chunk_ctxt::cc_rdma field svcrdma: Move struct svc_rdma_chunk_ctxt to svc_rdma.h svcrdma: Start moving fields out of struct svc_rdma_read_info svcrdma: Move svc_rdma_read_info::ri_pageno to struct svc_rdma_recv_ctxt svcrdma: Move read_info::ri_pageoff into struct svc_rdma_recv_ctxt svcrdma: Update synopsis of svc_rdma_build_read_segment() svcrdma: Update synopsis of svc_rdma_build_read_chunk() svcrdma: Update synopsis of svc_rdma_read_chunk_range() svcrdma: Update the synopsis of svc_rdma_read_data_item() svcrdma: Update synopsis of svc_rdma_copy_inline_range() svcrdma: Update synopsis of svc_rdma_read_multiple_chunks() svcrdma: Update the synopsis of svc_rdma_read_call_chunk() svcrdma: Update the synopsis of svc_rdma_read_special() svcrdma: Remove struct svc_rdma_read_info svcrdma: Move the svc_rdma_cc_init() call svcrdma: De-duplicate completion ID initialization helpers svcrdma: Optimize svc_rdma_cc_init() svcrdma: Remove pointer addresses shown in dprintk() svcrdma: Remove queue-shortening warnings svcrdma: Clean up comment in svc_rdma_accept() svcrdma: Add back svc_rdma_recv_ctxt::rc_pages svcrdma: Add back svcxprt_rdma::sc_read_complete_q svcrdma: Copy construction of svc_rqst::rq_arg to rdma_read_complete() svcrdma: Implement multi-stage Read completion again Dai Ngo (1): SUNRPC: remove printk when back channel request not found Dan Carpenter (1): nfsd: remove unnecessary NULL check Jeff Layton (1): nfsd: new Kconfig option for legacy client tracking NeilBrown (3): svc: don't hold reference for poolstats, only mutex. SUNRPC: discard sv_refcnt, and svc_get/svc_put nfsd: rename nfsd_last_thread() to nfsd_destroy_serv() Oleg Nesterov (1): NFSD: use read_seqbegin() rather than read_seqbegin_or_lock() fs/lockd/svc.c | 10 +-- fs/nfs/callback.c | 13 ++- fs/nfs/callback.h | 19 ---- fs/nfsd/Kconfig | 16 ++++ fs/nfsd/filecache.c | 2 +- fs/nfsd/netns.h | 11 +-- fs/nfsd/nfs4callback.c | 26 +----- fs/nfsd/nfs4proc.c | 7 +- fs/nfsd/nfs4recover.c | 97 +++++++++++++------- fs/nfsd/nfs4state.c | 2 +- fs/nfsd/nfs4xdr.c | 13 +-- fs/nfsd/nfscache.c | 6 +- fs/nfsd/nfsctl.c | 24 +++-- fs/nfsd/nfsd.h | 2 +- fs/nfsd/nfssvc.c | 69 ++++----------- fs/nfsd/trace.h | 22 ----- fs/nfsd/vfs.c | 46 +++++++++- fs/nfsd/vfs.h | 1 + fs/nfsd/xdr4.h | 1 + include/linux/nfs4.h | 22 +++++ include/linux/sunrpc/svc.h | 35 ++------ include/linux/sunrpc/svc_rdma.h | 67 +++++++++++++- include/linux/sunrpc/svcauth.h | 7 +- include/trace/events/rpcrdma.h | 254 +++++++++++++++++++++++----------------------------- include/trace/events/sunrpc.h | 1 - net/sunrpc/auth_gss/svcauth_gss.c | 16 ++-- net/sunrpc/svc.c | 15 +--- net/sunrpc/svc_xprt.c | 32 +++++-- net/sunrpc/svcauth.c | 16 ++++ net/sunrpc/svcsock.c | 14 +-- net/sunrpc/xprtrdma/svc_rdma.c | 32 +++++-- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 11 +-- net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 211 +++++++++++++++++++++++++++++++++++++------- net/sunrpc/xprtrdma/svc_rdma_rw.c | 450 +++++++++++++++++++++++++++++++++++++++------------------------------------------------------ net/sunrpc/xprtrdma/svc_rdma_sendto.c | 112 ++++++++++++----------- net/sunrpc/xprtrdma/svc_rdma_transport.c | 36 ++++---- net/sunrpc/xprtrdma/verbs.c | 2 +- 37 files changed, 923 insertions(+), 797 deletions(-) -- Chuck Lever