[GIT PULL] Please pull NFS client changes for Linux 5.5
From: Trond Myklebust
Date: Fri Dec 06 2019 - 14:14:11 EST
Hi Linus,
The following changes since commit a99d8080aaf358d5d23581244e5da23b35e340b9:
Linux 5.4-rc6 (2019-11-03 14:07:26 -0800)
are available in the Git repository at:
git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-5.5-1
for you to fetch changes up to a264abad51d8ecb7954a2f6d9f1885b38daffc74:
SUNRPC: Capture completion of all RPC tasks (2019-11-22 19:09:38 +0100)
----------------------------------------------------------------
NFS client updates for Linux 5.5
Highlights include:
Features:
- NFSv4.2 now supports cross device offloaded copy (i.e. offloaded copy
of a file from one source server to a different target server).
- New RDMA tracepoints for debugging congestion control and Local Invalidate
WRs.
Bugfixes and cleanups
- Drop the NFSv4.1 session slot if nfs4_delegreturn_prepare waits for
layoutreturn
- Handle bad/dead sessions correctly in nfs41_sequence_process()
- Various bugfixes to the delegation return operation.
- Various bugfixes pertaining to delegations that have been revoked.
- Cleanups to the NFS timespec code to avoid unnecessary conversions
between timespec and timespec64.
- Fix unstable RDMA connections after a reconnect
- Close race between waking an RDMA sender and posting a receive
- Wake pending RDMA tasks if connection fails
- Fix MR list corruption, and clean up MR usage
- Fix another RPCSEC_GSS issue with MIC buffer space
----------------------------------------------------------------
Anna Schumaker (2):
NFS: Return -ETXTBSY when attempting to write to a swapfile
NFS: Fallocate should use the nfs4_fattr_bitmap
Ben Dooks (1):
NFSv4: add declaration of current_stateid
Chuck Lever (23):
SUNRPC: Eliminate log noise in call_reserveresult
SUNRPC: Add trace points to observe transport congestion control
xprtrdma: Add unique trace points for posting Local Invalidate WRs
xprtrdma: Connection becomes unstable after a reconnect
xprtrdma: Initialize rb_credits in one place
xprtrdma: Close window between waking RPC senders and posting Receives
xprtrdma: Fix MR list handling
xprtrdma: Manage MRs in context of a single connection
xprtrdma: Ensure ri_id is stable during MR recycling
xprtrdma: Remove rpcrdma_sendctx::sc_xprt
xprtrdma: Remove rpcrdma_sendctx::sc_device
xprtrdma: Move the rpcrdma_sendctx::sc_wr field
xprtrdma: Refactor rpcrdma_prepare_msg_sges()
xprtrdma: Pull up sometimes
xprtrdma: Wake tasks after connect worker fails
xprtrdma: Report the computed connect delay
xprtrdma: Refine trace_xprtrdma_fixup
xprtrdma: Replace dprintk() in rpcrdma_update_connect_private()
xprtrdma: Replace dprintk in xprt_rdma_set_port
NFS4: Trace state recovery operation
NFS4: Trace lock reclaims
SUNRPC: Fix another issue with MIC buffer space
SUNRPC: Capture completion of all RPC tasks
Olga Kornievskaia (14):
NFS NFSD: defining nl4_servers structure needed by both
NFS: add COPY_NOTIFY operation
NFS: add ca_source_server<> to COPY
NFS: inter ssc open
NFS: skip recovery of copy open on dest server
NFS: for "inter" copy treat ESTALE as ENOTSUPP
NFS: COPY handle ERR_OFFLOAD_DENIED
NFS: also send OFFLOAD_CANCEL to source server
NFS handle NFS4ERR_PARTNER_NO_AUTH error
NFS: handle source server reboot
NFS based on file size issue sync copy or fallback to generic copy offload
NFS: replace cross device check in copy_file_range
NFSv4.2 fix kfree in __nfs42_copy_file_range
NFSv4.2 fix memory leak in nfs42_ssc_open
Saurav Girepunje (1):
fs: nfs: sysfs: Remove NULL check before kfree
Trond Myklebust (37):
NFS: If nfs_mountpoint_expiry_timeout < 0, do not expire submounts
NFS: Convert struct nfs_fattr to use struct timespec64
NFSv4: Encode 64-bit timestamps
NFSv4: NFSv4 callbacks also support 64-bit timestamps
NFSv2: Fix a typo in encode_sattr()
NFSv2: Clean up timespec encode
NFSv3: Clean up timespec encode
NFS: Use non-atomic bit ops when initialising struct nfs_client_initdata
NFS: Add a flag to tell nfs_client to set RPC_CLNT_CREATE_NOPING
pNFS: nfs3_set_ds_client should set NFS_CS_NOPING
NFS/pnfs: Separate NFSv3 DS and MDS traffic
NFSv4.1: Don't rebind to the same source port when reconnecting to the server
NFSv4: Fix delegation handling in update_open_stateid()
NFSv4: nfs4_callback_getattr() should ignore revoked delegations
NFSv4: Delegation recalls should not find revoked delegations
NFSv4: fail nfs4_refresh_delegation_stateid() when the delegation was revoked
NFS: Rename nfs_inode_return_delegation_noreclaim()
NFSv4: Don't remove the delegation from the super_list more than once
NFSv4: Hold the delegation spinlock when updating the seqid
NFSv4: Clear the NFS_DELEGATION_REVOKED flag in nfs_update_inplace_delegation()
NFSv4: Update the stateid seqid in nfs_revoke_delegation()
NFSv4: Revoke the delegation on success in nfs4_delegreturn_done()
NFSv4: Ignore requests to return the delegation if it was revoked
NFSv4: Don't reclaim delegations that have been returned or revoked
NFSv4: nfs4_return_incompatible_delegation() should check delegation validity
NFSv4: Fix nfs4_inode_make_writeable()
NFS: nfs_inode_find_state_and_recover() fix stateid matching
NFSv4: Fix races between open and delegreturn
NFSv4: Handle NFS4ERR_OLD_STATEID in delegreturn
NFSv4: Don't retry the GETATTR on old stateid in nfs4_delegreturn_done()
NFS: Add a tracepoint in nfs_fh_to_dentry()
SUNRPC: Avoid RPC delays when exiting suspend
Merge branch 'linux-ssc-for-5.5'
nfsv4: Move NFSPROC4_CLNT_COPY_NOTIFY to end of list
NFSv4.x: Handle bad/dead sessions correctly in nfs41_sequence_process()
NFSv4.x: Drop the slot if nfs4_delegreturn_prepare waits for layoutreturn
Merge tag 'nfs-rdma-for-5.5-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
YueHaibing (3):
NFS: remove unneeded semicolon
NFSv4: Make _nfs42_proc_copy_notify() static
NFS: remove duplicated include from nfs4file.c
fs/lockd/host.c | 3 +-
fs/nfs/callback.h | 4 +-
fs/nfs/callback_proc.c | 8 +-
fs/nfs/callback_xdr.c | 6 +-
fs/nfs/client.c | 11 +
fs/nfs/delegation.c | 158 ++++++++++-----
fs/nfs/delegation.h | 3 +-
fs/nfs/export.c | 1 +
fs/nfs/file.c | 2 +-
fs/nfs/inode.c | 54 ++---
fs/nfs/internal.h | 2 +-
fs/nfs/namespace.c | 3 +
fs/nfs/nfs2xdr.c | 21 +-
fs/nfs/nfs3client.c | 5 +-
fs/nfs/nfs3xdr.c | 14 +-
fs/nfs/nfs42.h | 15 +-
fs/nfs/nfs42proc.c | 201 ++++++++++++++++---
fs/nfs/nfs42xdr.c | 190 +++++++++++++++++-
fs/nfs/nfs4_fs.h | 21 +-
fs/nfs/nfs4client.c | 13 +-
fs/nfs/nfs4file.c | 141 ++++++++++++-
fs/nfs/nfs4proc.c | 69 ++++---
fs/nfs/nfs4state.c | 51 ++++-
fs/nfs/nfs4super.c | 4 +-
fs/nfs/nfs4trace.h | 175 ++++++++++++++++
fs/nfs/nfs4xdr.c | 24 +--
fs/nfs/nfstrace.h | 33 +++
fs/nfs/pnfs.c | 2 -
fs/nfs/super.c | 6 +-
fs/nfs/sysfs.c | 3 +-
include/linux/nfs4.h | 26 +++
include/linux/nfs_fs.h | 4 +-
include/linux/nfs_fs_sb.h | 6 +-
include/linux/nfs_xdr.h | 31 ++-
include/linux/sunrpc/clnt.h | 1 +
include/linux/sunrpc/xprt.h | 3 +-
include/trace/events/rpcrdma.h | 198 ++++++++++++------
include/trace/events/sunrpc.h | 94 +++++++++
net/sunrpc/clnt.c | 21 +-
net/sunrpc/sched.c | 3 +-
net/sunrpc/xdr.c | 11 +-
net/sunrpc/xprt.c | 22 +-
net/sunrpc/xprtrdma/backchannel.c | 2 +-
net/sunrpc/xprtrdma/frwr_ops.c | 53 +----
net/sunrpc/xprtrdma/rpc_rdma.c | 413 +++++++++++++++++++++++++-------------
net/sunrpc/xprtrdma/transport.c | 33 +--
net/sunrpc/xprtrdma/verbs.c | 194 ++++++++++--------
net/sunrpc/xprtrdma/xprt_rdma.h | 18 +-
net/sunrpc/xprtsock.c | 2 +-
49 files changed, 1756 insertions(+), 622 deletions(-)
--
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@xxxxxxxxxxxxxxx