[GIT PULL] Please pull NFS client changes
From: Trond Myklebust
Date: Tue Jan 30 2018 - 09:39:34 EST
Hi Linus,
The following changes since commit a8750ddca918032d6349adbf9a4b6555e7db20da:
Linux 4.15-rc8 (2018-01-14 15:32:30 -0800)
are available in the Git repository at:
git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.16-1
for you to fetch changes up to e231c6879cfd44e4fffd384bb6dd7d313249a523:
NFS: Fix a race between mmap() and O_DIRECT (2018-01-28 22:00:15 -0500)
----------------------------------------------------------------
NFS client updates for Linux 4.16
Highlights include:
Stable bugfixes:
- Fix breakages in the nfsstat utility due to the inclusion of the NFSv4
LOOKUPP operation.
- Fix a NULL pointer dereference in nfs_idmap_prepare_pipe_upcall() due to
nfs_idmap_legacy_upcall() being called without an 'aux' parameter.
- Fix a refcount leak in the standard O_DIRECT error path.
- Fix a refcount leak in the pNFS O_DIRECT fallback to MDS path.
- Fix CPU latency issues with nfs_commit_release_pages()
- Fix the LAYOUTUNAVAILABLE error case in the file layout type.
- NFS: Fix a race between mmap() and O_DIRECT
Features:
- Support the statx() mask and query flags to enable optimisations when
the user is requesting only attributes that are already up to date in
the inode cache, or is specifying the AT_STATX_DONT_SYNC flag.
- Add a module alias for the SCSI pNFS layout type.
Bugfixes:
- Automounting when resolving a NFSv4 referral should preserve the RDMA
transport protocol settings.
- Various other RDMA bugfixes from Chuck.
- pNFS block layout fixes.
- Always set NFS_LOCK_LOST when a lock is lost.
----------------------------------------------------------------
Arnd Bergmann (1):
nfs: remove unused label in nfs_encode_fh()
Benjamin Coddington (7):
NFS: remove unused offset arg in nfs_pgio_rpcsetup
pnfs/blocklayout: Add module alias for LAYOUT4_SCSI
pnfs/blocklayout: set PNFS_LAYOUTRETURN_ON_ERROR
pnfs/blocklayout: handle transient devices
SUNRPC: Fix null rpc_clnt dereference in rpc_task_queued tracepoint
pnfs/blocklayout: pnfs_block_dev_map uses bytes, not sectors
pnfs/blocklayout: Ensure disk address in block device map
Chuck Lever (39):
nfs: Define NFS_RDMA_PORT
nfs: Referrals should use the same proto setting as their parent
nfs: Update server port after referral or migration
SUNRPC: Remove rpc_protocol()
xprtrdma: Fix buffer leak after transport set up failure
xprtrdma: Fix backchannel allocation of extra rpcrdma_reps
xprtrdma: Eliminate unnecessary lock cycle in xprt_rdma_send_request
xprtrdma: Per-mode handling for Remote Invalidation
xprtrdma: Remove ri_reminv_expected
xprtrdma: Remove unused padding variables
xprtrdma: Initialize the xprt address string array earlier
xprtrdma: Remove another sockaddr_storage field (cdata::addr)
xprtrdma: Support IPv6 in xprt_rdma_set_port
xprtrdma: Move unmap-safe logic to rpcrdma_marshal_req
xprtrdma: buf_free not called for CB replies
xprtrdma: Split xprt_rdma_send_request
xprtrdma: Don't clear RPC_BC_PA_IN_USE on pre-allocated rpc_rqst's
xprtrdma: Replace all usage of "frmr" with "frwr"
xprtrdma: Remove usage of "mw"
xprtrdma: Introduce rpcrdma_mw_unmap_and_put
nfs: Use proper enum definitions for nfs_show_stable
rdma/ib: Add trace point macros to display human-readable values
rpcrdma: infrastructure for static trace points in rpcrdma.ko
xprtrdma: Add trace points in RPC Call transmit paths
xprtrdma: Add trace points in the RPC Reply handler paths
xprtrdma: Add trace points to instrument memory registration
xprtrdma: Add trace points in reply decoder path
xprtrdma: Add trace points to instrument memory invalidation
xprtrdma: Add trace points to instrument MR allocation and recovery
xprtrdma: Add trace points for connect events
xprtrdma: Add trace points in the client-side backchannel code paths
xprtrdma: Add trace points to instrument QP and CQ access upcalls
xprtrdma: Instrument allocation/release of rpcrdma_req/rep objects
xprtrdma: Fix "bytes registered" accounting
xprtrdma: Correct some documenting comments
SUNRPC: Trace xprt_timer events
sunrpc: Format RPC events consistently for display
SUNRPC: task_run_action should display tk_callback
SUNRPC: Micro-optimize __rpc_execute
Elena Reshetova (4):
lockd: convert nlm_host.h_count from atomic_t to refcount_t
lockd: convert nsm_handle.sm_count from atomic_t to refcount_t
lockd: convert nlm_lockowner.count from atomic_t to refcount_t
lockd: convert nlm_rqst.a_count from atomic_t to refcount_t
Eric Biggers (1):
NFS: reject request for id_legacy key without auxdata
J. Bruce Fields (1):
NFS: commit direct writes even if they fail partially
Jan Chochol (1):
nfs: Do not convert nfs_idmap_cache_timeout to jiffies
NeilBrown (2):
nfs: remove dead code from nfs_encode_fh()
NFSv4: always set NFS_LOCK_LOST when a lock is lost.
Scott Mayhew (1):
nfs/pnfs: fix nfs_direct_req ref leak when i/o falls back to the mds
Tigran Mkrtchyan (1):
nfs41: do not return ENOMEM on LAYOUTUNAVAILABLE
Trond Myklebust (12):
NFS: Add a cond_resched() to nfs_commit_release_pages()
NFSv4: Convert CLOSE to use nfs4_async_handle_exception()
NFSv4: Convert DELEGRETURN to use nfs4_handle_exception()
NFSv4: Convert LOCKU to use nfs4_async_handle_exception()
NFS: Fix nfsstat breakage due to LOOKUPP
Support statx() mask and query flags parameters
SUNRPC: Chunk reading of replies from the server
SUNRPC: Add explicit rescheduling points in the receive path
Merge tag 'nfs-rdma-for-4.16-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
lockd: Fix server refcounting
NFS: Remove a redundant call to unmap_mapping_range()
NFS: Fix a race between mmap() and O_DIRECT
fs/lockd/clntproc.c | 14 +-
fs/lockd/host.c | 22 +-
fs/lockd/mon.c | 14 +-
fs/lockd/svcproc.c | 2 +-
fs/nfs/blocklayout/blocklayout.c | 94 +++-
fs/nfs/blocklayout/blocklayout.h | 7 +-
fs/nfs/blocklayout/dev.c | 7 +-
fs/nfs/direct.c | 4 +-
fs/nfs/export.c | 5 -
fs/nfs/filelayout/filelayout.c | 4 +-
fs/nfs/inode.c | 53 ++-
fs/nfs/io.c | 2 +-
fs/nfs/nfs4client.c | 24 +-
fs/nfs/nfs4idmap.c | 6 +-
fs/nfs/nfs4namespace.c | 2 -
fs/nfs/nfs4proc.c | 42 +-
fs/nfs/nfs4state.c | 5 +-
fs/nfs/nfs4sysctl.c | 2 +-
fs/nfs/nfs4xdr.c | 64 +--
fs/nfs/nfstrace.h | 22 +-
fs/nfs/pagelist.c | 8 +-
fs/nfs/pnfs.c | 6 +-
fs/nfs/pnfs.h | 6 +-
fs/nfs/pnfs_dev.c | 1 -
fs/nfs/write.c | 2 +
include/linux/lockd/lockd.h | 9 +-
include/linux/nfs4.h | 12 +-
include/linux/sunrpc/clnt.h | 1 -
include/linux/sunrpc/xprtrdma.h | 2 +-
include/trace/events/rdma.h | 129 ++++++
include/trace/events/rpcrdma.h | 890 ++++++++++++++++++++++++++++++++++++++
include/trace/events/sunrpc.h | 12 +-
include/uapi/linux/nfs.h | 1 +
net/sunrpc/clnt.c | 16 -
net/sunrpc/sched.c | 26 +-
net/sunrpc/xprt.c | 2 +-
net/sunrpc/xprtrdma/backchannel.c | 78 ++--
net/sunrpc/xprtrdma/fmr_ops.c | 157 ++++---
net/sunrpc/xprtrdma/frwr_ops.c | 329 +++++++-------
net/sunrpc/xprtrdma/module.c | 12 +-
net/sunrpc/xprtrdma/rpc_rdma.c | 162 +++----
net/sunrpc/xprtrdma/transport.c | 128 +++---
net/sunrpc/xprtrdma/verbs.c | 280 ++++++------
net/sunrpc/xprtrdma/xprt_rdma.h | 116 ++---
net/sunrpc/xprtsock.c | 36 +-
45 files changed, 1995 insertions(+), 821 deletions(-)
create mode 100644 include/trace/events/rdma.h
create mode 100644 include/trace/events/rpcrdma.h
--
Trond Myklebust
Linux NFS client maintainer, PrimaryData
trond.myklebust@xxxxxxxxxxxxxxx