Hi Linus, The following changes since commit 2137397c92aec3713fa10be3c9b830f9a1674e60: Merge tag 'sound-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound (2019-02-20 09:42:52 -0800) are available in the Git repository at: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-5.1-1 for you to fetch changes up to 4d6c671ace569d4b0d3f8d92ab3aef18a5d166bc: SUNRPC: Take the transport send lock before binding+connecting (2019-03-10 14:08:19 -0400) ---------------------------------------------------------------- NFS client updates for Linux 5.1 Highlights include: Stable fixes: - Fixes for NFS I/O request leakages - Fix error handling paths in the NFS I/O recoalescing code - Reinitialise NFSv4.1 sequence results before retransmitting a request - Fix a soft lockup in the delegation recovery code - Bulk destroy of layouts needs to be safe w.r.t. umount - Prevent thundering herd issues when the SUNRPC socket is not connected - Respect RPC call timeouts when retrying transmission Features: - Convert rpc auth layer to use xdr_streams - Config option to disable insecure RPCSEC_GSS crypto types - Reduce size of RPC receive buffers - Readdirplus optimization by cache mechanism - Convert SUNRPC socket send code to use iov_iter() - SUNRPC micro-optimisations to avoid indirect calls - Add support for the pNFS LAYOUTERROR operation and use it with the pNFS/flexfiles driver - Add trace events to report non-zero NFS status codes - Various removals of unnecessary dprintks Bugfixes and cleanups: - Fix a number of sparse warnings and documentation format warnings - Fix nfs_parse_devname to not modify it's argument - Fix potential corruption of page being written through pNFS/blocks - fix xfstest generic/099 failures on nfsv3 - Avoid NFSv4.1 "false retries" when RPC calls are interrupted - Abort I/O early if the pNFS/flexfiles layout segment was invalidated - Avoid unnecessary pNFS/flexfiles layout invalidations ---------------------------------------------------------------- Anna Schumaker (1): NFS: Add missing encode / decode sequence_maxsz to v4.2 operations Chuck Lever (23): xprtrdma: Fix sparse warnings xprtrdma: Check inline size before providing a Write chunk xprtrdma: Reduce the doorbell rate (Receive) SUNRPC: Display symbolic flag names in RPC trace events SUNRPC: Add xdr_stream::rqst field SUNRPC: Add XDR overflow trace event SUNRPC: Add trace event that reports reply page vector alignment NFS: Remove print_overflow_msg() NFS: Add trace events to report non-zero NFS status codes SUNRPC: Remove some dprintk() call sites from auth functions SUNRPC: Remove rpc_xprt::tsh_size SUNRPC: Add build option to disable support for insecure enctypes SUNRPC: Use struct xdr_stream when constructing RPC Call header SUNRPC: Clean up rpc_verify_header() SUNRPC: Use struct xdr_stream when decoding RPC Reply header SUNRPC: Introduce trace points in rpc_auth_gss.ko SUNRPC: Remove xdr_buf_trim() SUNRPC: Add SPDX IDs to some net/sunrpc/auth_gss/ files SUNRPC: Introduce rpc_prepare_reply_pages() NFS: Account for XDR pad of buf->pages SUNRPC: Make AUTH_SYS and AUTH_NULL set au_verfsize SUNRPC: Add rpc_auth::au_ralign field SUNRPC: Use au_rslack when computing reply buffer size Eric W. Biederman (1): fs/nfs: Fix nfs_parse_devname to not modify it's argument Julia Lawall (1): NFS: drop useless LIST_HEAD Kazuo Ito (2): pNFS: Fix potential corruption of page being written pNFS: Avoid read/modify/write when it is not necessary NeilBrown (1): SUNRPC: remove pointless test in unx_match() Trond Myklebust (58): NFS: Fix I/O request leakages NFS: Fix an I/O request leakage in nfs_do_recoalesce NFS: Don't recoalesce on error in nfs_pageio_complete_mirror() NFS: Clean up list moves of struct nfs_page NFS: Pass error information to the pgio error cleanup routine NFS: Ensure NFS writeback allocations don't recurse back into NFS. NFS: EINTR is also a fatal error. NFS: ENOMEM should also be a fatal error. NFS: Fix up documentation warnings NFS: Fix sparse annotations for nfs_set_open_stateid_locked() SUNRPC: Set memalloc_nofs_save() on all rpciod/xprtiod jobs SUNRPC: Use poll() to fix up the socket requeue races SUNRPC: Ensure rq_bytes_sent is reset before request transmission SUNRPC: Don't reset the stream record info when the receive worker is running SUNRPC: Handle zero length fragments correctly SUNRPC: Don't suppress socket errors when a message read completes SUNRPC: Initiate a connection close on an ESHUTDOWN error in stream receive SUNRPC: Convert xs_send_kvec() to use iov_iter_kvec() SUNRPC: Convert socket page send code to use iov_iter() SUNRPC: Further cleanups of xs_sendpages() SUNRPC: Remove the redundant 'zerocopy' argument to xs_sendpages() NFSv4.1: Avoid false retries when RPC calls are interrupted NFS: Fix a soft lockup in the delegation recovery code NFS/pnfs: Bulk destroy of layouts needs to be safe w.r.t. umount Merge tag 'nfs-rdma-for-5.1-1' of git://git.linux-nfs.org/projects/anna/linux-nfs SUNRPC: Fix an Oops in udp_poll() NFSv4.1: Reinitialise sequence results before retransmitting a request NFSv4.1: Don't process the sequence op more than once. NFSv4/flexfiles: Fix invalid deref in FF_LAYOUT_DEVID_NODE() NFS/flexfiles: Fix up sparse RCU annotations NFSv4/pnfs: Fix barriers in nfs4_mark_deviceid_unavailable() NFSv4/flexfiles: Abort I/O early if the layout segment was invalidated NFSv4.2: Add client support for the generic 'layouterror' RPC call NFS/flexfiles: Send LAYOUTERROR when failing over mirrored reads NFSv4: Handle early exit in layoutget by returning an error NFS/flexfiles: refactor calls to fs4_ff_layout_prepare_ds() NFS/flexfiles: Avoid unnecessary layout invalidations NFS/flexfiles: Remove bogus checks for invalid deviceids NFS/flexfiles: Don't invalidate DS deviceids for being unresponsive NFS/flexfiles: Speed up read failover when DSes are down NFS/flexfiles: Simplify nfs4_ff_layout_select_ds_fh() NFS/flexfiles: Simplify nfs4_ff_find_or_create_ds_client() NFS/flexfiles: Simplify ff_layout_get_ds_cred() NFS/flexfile: Simplify nfs4_ff_layout_ds_version() NFS/flexfile: Simplify nfs4_ff_layout_select_ds_stateid() NFS/flexfiles: Remove dead code in ff_layout_mirror_valid() NFS/flexfiles: Clean up mirror DS initialisation SUNRPC: Convert remaining GFP_NOIO, and GFP_NOWAIT sites in sunrpc NFSv4.1: Bump the default callback session slot count to 16 SUNRPC: Allow dynamic allocation of back channel slots SUNRPC: Prevent thundering herd when the socket is not connected SUNRPC: Fix up RPC back channel transmission SUNRPC: Respect RPC call timeouts when retrying transmission SUNRPC: Clean up SUNRPC: Remove redundant calls to RPC_IS_QUEUED() SUNRPC: Check whether the task was transmitted before rebind/reconnect SUNRPC: Micro-optimise when the task is known not to be sleeping SUNRPC: Take the transport send lock before binding+connecting ZhangXiaoxu (1): nfs: fix xfstest generic/099 failed on nfsv3 luanshi (1): NFS: readdirplus optimization by cache mechanism zhangliguang (2): NFS: Remove redundant semicolon NFS: Fix typo in comments of nfs_readdir_alloc_pages() fs/lockd/clnt4xdr.c | 14 - fs/lockd/clntxdr.c | 14 - fs/nfs/callback_xdr.c | 64 ++- fs/nfs/delegation.c | 22 +- fs/nfs/delegation.h | 1 + fs/nfs/dir.c | 98 ++++- fs/nfs/direct.c | 7 +- fs/nfs/file.c | 44 +- fs/nfs/flexfilelayout/flexfilelayout.c | 225 +++++++--- fs/nfs/flexfilelayout/flexfilelayout.h | 75 ++-- fs/nfs/flexfilelayout/flexfilelayoutdev.c | 161 +++---- fs/nfs/inode.c | 33 +- fs/nfs/internal.h | 5 +- fs/nfs/io.c | 12 +- fs/nfs/namespace.c | 8 +- fs/nfs/nfs2xdr.c | 124 ++---- fs/nfs/nfs3acl.c | 2 - fs/nfs/nfs3xdr.c | 209 +++------ fs/nfs/nfs42.h | 3 + fs/nfs/nfs42proc.c | 164 +++++++ fs/nfs/nfs42xdr.c | 130 +++++- fs/nfs/nfs4client.c | 33 +- fs/nfs/nfs4namespace.c | 5 +- fs/nfs/nfs4proc.c | 138 +++--- fs/nfs/nfs4session.c | 7 +- fs/nfs/nfs4session.h | 7 +- fs/nfs/nfs4state.c | 1 + fs/nfs/nfs4trace.h | 25 ++ fs/nfs/nfs4xdr.c | 530 +++++++---------------- fs/nfs/nfstrace.c | 1 + fs/nfs/nfstrace.h | 85 ++++ fs/nfs/pagelist.c | 47 +- fs/nfs/pnfs.c | 33 +- fs/nfs/pnfs.h | 2 + fs/nfs/pnfs_dev.c | 13 + fs/nfs/read.c | 2 +- fs/nfs/super.c | 2 +- fs/nfs/unlink.c | 8 +- fs/nfs/write.c | 19 +- fs/nfsd/nfs4callback.c | 13 - include/linux/nfs4.h | 1 + include/linux/nfs_fs_sb.h | 1 + include/linux/nfs_page.h | 10 + include/linux/nfs_xdr.h | 37 +- include/linux/sunrpc/auth.h | 44 +- include/linux/sunrpc/clnt.h | 3 + include/linux/sunrpc/gss_krb5_enctypes.h | 42 +- include/linux/sunrpc/sched.h | 9 + include/linux/sunrpc/xdr.h | 23 +- include/linux/sunrpc/xprt.h | 7 - include/linux/sunrpc/xprtsock.h | 1 + include/trace/events/rpcgss.h | 361 ++++++++++++++++ include/trace/events/rpcrdma.h | 12 +- include/trace/events/sunrpc.h | 361 +++++++++++++++- net/sunrpc/Kconfig | 16 + net/sunrpc/auth.c | 136 +++--- net/sunrpc/auth_gss/Makefile | 2 +- net/sunrpc/auth_gss/auth_gss.c | 553 ++++++++++++------------ net/sunrpc/auth_gss/gss_krb5_mech.c | 29 +- net/sunrpc/auth_gss/gss_krb5_wrap.c | 8 +- net/sunrpc/auth_gss/gss_mech_switch.c | 27 +- net/sunrpc/auth_gss/gss_rpc_upcall.c | 15 +- net/sunrpc/auth_gss/gss_rpc_upcall.h | 16 +- net/sunrpc/auth_gss/gss_rpc_xdr.c | 15 +- net/sunrpc/auth_gss/gss_rpc_xdr.h | 17 +- net/sunrpc/auth_gss/svcauth_gss.c | 3 +- net/sunrpc/auth_gss/trace.c | 11 + net/sunrpc/auth_null.c | 56 +-- net/sunrpc/auth_unix.c | 122 +++--- net/sunrpc/backchannel_rqst.c | 42 +- net/sunrpc/clnt.c | 660 ++++++++++++++++------------- net/sunrpc/sched.c | 17 +- net/sunrpc/svc.c | 19 +- net/sunrpc/xdr.c | 121 +++--- net/sunrpc/xprt.c | 23 +- net/sunrpc/xprtrdma/backchannel.c | 3 +- net/sunrpc/xprtrdma/frwr_ops.c | 4 +- net/sunrpc/xprtrdma/rpc_rdma.c | 22 +- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 1 - net/sunrpc/xprtrdma/transport.c | 2 - net/sunrpc/xprtrdma/verbs.c | 2 + net/sunrpc/xprtrdma/xprt_rdma.h | 12 +- net/sunrpc/xprtsock.c | 317 ++++++++------ 83 files changed, 3366 insertions(+), 2203 deletions(-) create mode 100644 include/trace/events/rpcgss.h create mode 100644 net/sunrpc/auth_gss/trace.c -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@xxxxxxxxxxxxxxx