Hi Linus, The following changes since commit 63e2fffa59a9dd91e443b08832656399fd80b7f0: pNFS/flexfiles: Fix array overflow when flexfiles mirroring is enabled (2020-11-30 10:52:22 -0500) are available in the Git repository at: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for- 5.11-1 for you to fetch changes up to 52104f274e2d7f134d34bab11cada8913d4544e2: NFS/pNFS: Fix a typo in ff_layout_resend_pnfs_read() (2020-12-16 17:25:24 -0500) Stephen Rothwell has noted that there are conflicts with the upstream tree. They are due to the last-minute fix to the NFSv4.2 READ_PLUS code in 5.10, and due to the changes for the nfsd XDR code. The fixups should be trivial but please let me know if you'd prefer that I do so. Cheers Trond ---------------------------------------------------------------- NFS client updates for Linux 5.11 Highlights include: Features: - NFSv3: Add emulation of lookupp() to improve open_by_filehandle() support. - A series of patches to improve readdir performance, particularly with large directories. - Basic support for using NFS/RDMA with the pNFS files and flexfiles drivers. - Micro-optimisations for RDMA. - RDMA tracing improvements. Bugfixes: - Fix a long standing bug with xs_read_xdr_buf() when receiving partial pages (Dan Aloni). - Various fixes for getxattr and listxattr, when used over non-TCP transports. - Fixes for containerised NFS from Sargun Dhillon. - switch nfsiod to be an UNBOUND workqueue (Neil Brown). - READDIR should not ask for security label information if there is no LSM policy. (Olga Kornievskaia) - Avoid using interval-based rebinding with TCP in lockd (Calum Mackay). - A series of RPC and NFS layer fixes to support the NFSv4.2 READ_PLUS code. - A couple of fixes for pnfs/flexfiles read failover Cleanups: - Various cleanups for the SUNRPC xdr code in conjunction with the READ_PLUS fixes. ---------------------------------------------------------------- Calum Mackay (1): lockd: don't use interval-based rebinding over TCP Chuck Lever (16): xprtrdma: Replace dprintk call sites in ERR_CHUNK path xprtrdma: Introduce Receive completion IDs xprtrdma: Introduce Send completion IDs xprtrdma: Introduce FRWR completion IDs xprtrdma: Clean up trace_xprtrdma_post_linv xprtrdma: Clean up reply parsing error tracepoints xprtrdma: Clean up tracepoints in the reply path xprtrdma: Clean up xprtrdma callback tracepoints xprtrdma: Clean up trace_xprtrdma_nomrs() xprtrdma: Display the task ID when reporting MR events xprtrdma: Trace unmap_sync calls xprtrdma: Move rpcrdma_mr_put() xprtrdma: Micro-optimize MR DMA-unmapping SUNRPC: Remove XDRBUF_SPARSE_PAGES flag in gss_proxy upcall NFS: Fix rpcrdma_inline_fixup() crash with new LISTXATTRS operation xprtrdma: Fix XDRBUF_SPARSE_PAGES support Colin Ian King (1): NFSv4.2: fix error return on memory allocation failure Dai Ngo (1): NFSv4.2: Fix 5 seconds delay when doing inter server copy Dan Aloni (1): sunrpc: fix xs_read_xdr_buf for partial pages receive Fedor Tokarev (1): net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs' Frank van der Linden (1): NFSv4.2: improve page handling for GETXATTR Geliang Tang (1): NFSv4.1: use BITS_PER_LONG macro in nfs4session.h NeilBrown (1): NFS: switch nfsiod to be an UNBOUND workqueue. Olga Kornievskaia (1): NFSv4.2: condition READDIR's mask for security label based on LSM state Sargun Dhillon (2): NFS: NFSv2/NFSv3: Use cred from fs_context during mount NFSv4: Refactor to use user namespaces for nfs4idmap Trond Myklebust (63): NFSv3: Refactor nfs3_proc_lookup() to split out the dentry NFSv3: Add emulation of the lookupp() operation NFSv4: Observe the NFS_MOUNT_SOFTREVAL flag in _nfs4_proc_lookupp SUNRPC: rpc_wake_up() should wake up tasks in the correct order NFS: Ensure contents of struct nfs_open_dir_context are consistent NFS: Clean up readdir struct nfs_cache_array NFS: Clean up nfs_readdir_page_filler() NFS: Clean up directory array handling NFS: Don't discard readdir results NFS: Remove unnecessary kmap in nfs_readdir_xdr_to_array() NFS: Replace kmap() with kmap_atomic() in nfs_readdir_search_array() NFS: Simplify struct nfs_cache_array_entry NFS: Support larger readdir buffers NFS: More readdir cleanups NFS: nfs_do_filldir() does not return a value NFS: Reduce readdir stack usage NFS: Cleanup to remove nfs_readdir_descriptor_t typedef NFS: Allow the NFS generic code to pass in a verifier to readdir NFS: Handle NFS4ERR_NOT_SAME and NFSERR_BADCOOKIE from readdir calls NFS: Improve handling of directory verifiers NFS: Optimisations for monotonically increasing readdir cookies NFS: Reduce number of RPC calls when doing uncached readdir NFS: Do uncached readdir when we're seeking a cookie in an empty page cache SUNRPC: xprt_load_transport() needs to support the netid "rdma6" SUNRPC: Close a race with transport setup and module put SUNRPC: Add a helper to return the transport identifier given a netid NFS: Switch mount code to use xprt_find_transport_ident() SUNRPC: Remove unused function xprt_load_transport() NFSv4/pNFS: Use connections to a DS that are all of the same protocol family pNFS: Add helpers for allocation/free of struct nfs4_pnfs_ds_addr NFSv4/pNFS: Store the transport type in struct nfs4_pnfs_ds_addr pNFS/flexfiles: Fix up layoutstats reporting for non-TCP transports SUNRPC: Fix up open coded kmemdup_nul() pNFS: Clean up open coded xdr string decoding NFSv4: Fix the alignment of page data in the getdeviceinfo reply SUNRPC: Fix up typo in xdr_init_decode() SUNRPC: Clean up helpers xdr_set_iov() and xdr_set_page_base() SUNRPC: Fix up xdr_read_pages() to take arbitrary object lengths SUNRPC: Clean up the handling of page padding in rpc_prepare_reply_pages() SUNRPC: Fix up xdr_set_page() SUNRPC: Fix open coded xdr_stream_remaining() NFSv4: Fix open coded xdr_stream_remaining() NFSv4: Fix a pNFS layout related use-after-free race when freeing the inode NFSv4.2: Fix up the get/listxattr calls to rpc_prepare_reply_pages() SUNRPC: _shift_data_left/right_pages should check the shift length SUNRPC: Fixes for xdr_align_data() SUNRPC: Fix xdr_expand_hole() SUNRPC: Cleanup xdr_shrink_bufhead() SUNRPC: _copy_to/from_pages() now check for zero length SUNRPC: Clean up open coded setting of the xdr_stream 'nwords' field SUNRPC: Cleanup - constify a number of xdr_buf helpers SUNRPC: When expanding the buffer, we may need grow the sparse pages NFSv4.2: Ensure we always reset the result->count in decode_read_plus() NFSv4.2: decode_read_plus_data() must skip padding after data segment NFSv4.2: decode_read_plus_hole() needs to check the extent offset NFSv4.2: Handle hole lengths that exceed the READ_PLUS read buffer NFSv4.2: Don't error when exiting early on a READ_PLUS buffer overflow NFSv4.2: Deal with potential READ_PLUS data extent buffer overflow NFSv4.2/pnfs: Don't use READ_PLUS with pNFS yet Merge tag 'nfs-rdma-for-5.11-1' of git://git.linux- nfs.org/projects/anna/linux-nfs into linux-next NFSv4/pnfs: Add tracing for the deviceid cache pNFS/flexfiles: Avoid spurious layout returns in ff_layout_choose_ds_for_read NFS/pNFS: Fix a typo in ff_layout_resend_pnfs_read() Zheng Yongjun (1): fs/lockd: convert comma to semicolon fs/lockd/host.c | 22 +- fs/nfs/client.c | 8 +- fs/nfs/dir.c | 719 +++++++++++++++++-------- --- fs/nfs/flexfilelayout/flexfilelayout.c | 17 +- fs/nfs/fs_context.c | 21 +- fs/nfs/inode.c | 9 +- fs/nfs/internal.h | 6 - fs/nfs/nfs2xdr.c | 19 +- fs/nfs/nfs3proc.c | 83 ++-- fs/nfs/nfs3xdr.c | 29 +- fs/nfs/nfs42proc.c | 69 ++- fs/nfs/nfs42xdr.c | 102 ++-- fs/nfs/nfs4client.c | 2 +- fs/nfs/nfs4file.c | 2 +- fs/nfs/nfs4proc.c | 71 +-- fs/nfs/nfs4session.h | 2 +- fs/nfs/nfs4super.c | 2 +- fs/nfs/nfs4trace.h | 75 +++ fs/nfs/nfs4xdr.c | 48 +- fs/nfs/pnfs.c | 33 +- fs/nfs/pnfs.h | 7 + fs/nfs/pnfs_dev.c | 23 +- fs/nfs/pnfs_nfs.c | 105 ++--- fs/nfs/proc.c | 18 +- include/linux/nfs_fs.h | 9 +- include/linux/nfs_xdr.h | 17 +- include/linux/sunrpc/xdr.h | 26 +- include/linux/sunrpc/xprt.h | 3 +- include/trace/events/rpcrdma.h | 450 +++++++++--------- net/sunrpc/auth_gss/gss_rpc_upcall.c | 15 +- net/sunrpc/auth_gss/gss_rpc_xdr.c | 1 - net/sunrpc/clnt.c | 5 +- net/sunrpc/debugfs.c | 4 +- net/sunrpc/sched.c | 65 +-- net/sunrpc/xdr.c | 822 +++++++++++++++++++++---- -------- net/sunrpc/xprt.c | 117 +++-- net/sunrpc/xprtrdma/backchannel.c | 6 +- net/sunrpc/xprtrdma/frwr_ops.c | 81 ++-- net/sunrpc/xprtrdma/module.c | 1 + net/sunrpc/xprtrdma/rpc_rdma.c | 72 +-- net/sunrpc/xprtrdma/transport.c | 8 +- net/sunrpc/xprtrdma/verbs.c | 30 +- net/sunrpc/xprtrdma/xprt_rdma.h | 9 +- net/sunrpc/xprtsock.c | 7 +- 44 files changed, 1978 insertions(+), 1262 deletions(-) -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@xxxxxxxxxxxxxxx