[GIT PULL] Please pull NFS client changes for Linux 4.20.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

The following changes since commit 17b57b1883c1285f3d0dc2266e8f79286a7bef38:

  Linux 4.19-rc6 (2018-09-30 07:15:35 -0700)

are available in the Git repository at:

  git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.20-1

for you to fetch changes up to 331bc71cb1751d78f6807ad8e6162b07c67cdd1b:

  SUNRPC: Convert the auth cred cache to use refcount_t (2018-10-23 12:24:33 -0400)

Cheers
  Trond

----------------------------------------------------------------
NFS client updates for Linux 4.20

Highlights include:

Stable fixes:
- Fix the NFSv4.1 r/wsize sanity checking
- Reset the RPC/RDMA credit grant properly after a disconnect
- Fix a missed page unlock after pg_doio()

Features and optimisations:
- Overhaul of the RPC client socket code to eliminate a locking bottleneck
  and reduce the latency when transmitting lots of requests in parallel.
- Allow parallelisation of the RPCSEC_GSS encoding of an RPC request.
- Convert the RPC client socket receive code to use iovec_iter() for
  improved efficiency.
- Convert several NFS and RPC lookup operations to use RCU instead of
  taking global locks.
- Avoid the need for BH-safe locks in the RPC/RDMA back channel.

Bugfixes and cleanups:
- Fix lock recovery during NFSv4 delegation recalls
- Fix the NFSv4 + NFSv4.1 "lookup revalidate + open file" case.
- Fixes for the RPC connection metrics
- Various RPC client layer cleanups to consolidate stream based sockets
- RPC/RDMA connection cleanups
- Simplify the RPC/RDMA cleanup after memory operation failures
- Clean ups for NFS v4.2 copy completion and NFSv4 open state reclaim.

----------------------------------------------------------------
Anna Schumaker (4):
      NFS: Split out the body of nfs4_reclaim_open_state()
      NFS: Reduce indentation of the switch statement in nfs4_reclaim_open_state()
      NFS: Reduce indentation of nfs4_recovery_handle_error()
      NFSv4: Split out NFS v4.2 copy completion functions

Arnd Bergmann (1):
      SUNRPC: use cmpxchg64() in gss_seq_send64_fetch_and_inc()

Benjamin Coddington (2):
      nfs: Fix a missed page unlock after pg_doio()
      nfs: remove redundant call to nfs_context_set_write_error()

Chuck Lever (20):
      xprtrdma: xprt_release_rqst_cong is called outside of transport_lock
      xprtrdma: Reset credit grant properly after a disconnect
      xprtrdma: Create more MRs at a time
      xprtrdma: Explicitly resetting MRs is no longer necessary
      xprtrdma: Name MR trace events consistently
      sunrpc: Fix connect metrics
      sunrpc: Report connect_time in seconds
      xprtrdma: Rename rpcrdma_conn_upcall
      xprtrdma: Conventional variable names in rpcrdma_conn_upcall
      xprtrdma: Eliminate "connstate" variable from rpcrdma_conn_upcall()
      xprtrdma: Re-organize the switch() in rpcrdma_conn_upcall
      xprtrdma: Simplify RPC wake-ups on connect
      xprtrdma: Rename rpcrdma_qp_async_error_upcall
      xprtrdma: Remove memory address of "ep" from an error message
      xprtrdma: Don't disable BH's in backchannel server
      xprtrdma: Move rb_flags initialization
      xprtrdma: Report when there were zero posted Receives
      xprtrdma: Add documenting comments
      xprtrdma: Clean up xprt_rdma_disconnect_inject
      xprtrdma: Squelch a sparse warning

Frank Sorenson (1):
      NFS: change sign of nfs_fh length

J. Bruce Fields (1):
      sunrpc: safely reallow resvport min/max inversion

Olga Kornievskaia (1):
      NFSv4.x: fix lock recovery during delegation recall

Tigran Mkrtchyan (1):
      nfs4: flex_file: ignore synthetic uid/gid for tightly coupled DSes

Trond Myklebust (67):
      SUNRPC: Clean up initialisation of the struct rpc_rqst
      SUNRPC: If there is no reply expected, bail early from call_decode
      SUNRPC: The transmitted message must lie in the RPCSEC window of validity
      SUNRPC: Simplify identification of when the message send/receive is complete
      SUNRPC: Avoid holding locks across the XDR encoding of the RPC message
      SUNRPC: Rename TCP receive-specific state variables
      SUNRPC: Move reset of TCP state variables into the reconnect code
      SUNRPC: Add socket transmit queue offset tracking
      SUNRPC: Simplify dealing with aborted partially transmitted messages
      SUNRPC: Refactor the transport request pinning
      SUNRPC: Add a helper to wake up a sleeping rpc_task and set its status
      SUNRPC: Test whether the task is queued before grabbing the queue spinlocks
      SUNRPC: Don't wake queued RPC calls multiple times in xprt_transmit
      SUNRPC: Rename xprt->recv_lock to xprt->queue_lock
      SUNRPC: Refactor xprt_transmit() to remove the reply queue code
      SUNRPC: Refactor xprt_transmit() to remove wait for reply code
      SUNRPC: Minor cleanup for call_transmit()
      SUNRPC: Distinguish between the slot allocation list and receive queue
      SUNRPC: Add a transmission queue for RPC requests
      SUNRPC: Refactor RPC call encoding
      SUNRPC: Fix up the back channel transmit
      SUNRPC: Treat the task and request as separate in the xprt_ops->send_request()
      SUNRPC: Don't reset the request 'bytes_sent' counter when releasing XPRT_LOCK
      SUNRPC: Simplify xprt_prepare_transmit()
      SUNRPC: Move RPC retransmission stat counter to xprt_transmit()
      SUNRPC: Improve latency for interactive tasks
      SUNRPC: Support for congestion control when queuing is enabled
      SUNRPC: Enqueue swapper tagged RPCs at the head of the transmit queue
      SUNRPC: Allow calls to xprt_transmit() to drain the entire transmit queue
      SUNRPC: Allow soft RPC calls to time out when waiting for the XPRT_LOCK
      SUNRPC: Turn off throttling of RPC slots for TCP sockets
      SUNRPC: Clean up transport write space handling
      SUNRPC: Cleanup: remove the unused 'task' argument from the request_send()
      SUNRPC: Don't take transport->lock unnecessarily when taking XPRT_LOCK
      SUNRPC: Convert xprt receive queue to use an rbtree
      SUNRPC: Fix priority queue fairness
      SUNRPC: Convert the xprt->sending queue back to an ordinary wait queue
      SUNRPC: Add a label for RPC calls that require allocation on receive
      SUNRPC: Add a bvec array to struct xdr_buf for use with iovec_iter()
      SUNRPC: Simplify TCP receive code by switching to using iterators
      SUNRPC: Clean up - rename xs_tcp_data_receive() to xs_stream_data_receive()
      SUNRPC: Allow AF_LOCAL sockets to use the generic stream receive
      SUNRPC: Clean up xs_udp_data_receive()
      SUNRPC: Unexport xdr_partial_copy_from_skb()
      pNFS: Don't zero out the array in nfs4_alloc_pages()
      pNFS: Don't allocate more pages than we need to fit a layoutget response
      NFS: Convert lookups of the lock context to RCU
      NFS: Simplify internal check for whether file is open for write
      NFS: Convert lookups of the open context to RCU
      NFSv4: Convert open state lookup to use RCU
      NFSv4: Convert struct nfs4_state to use refcount_t
      NFSv4.1: Fix the r/wsize checking
      NFSv3: Improve NFSv3 performance when server returns no post-op attributes
      NFSv4: Save a few bytes in the nfs_pgio_args/res
      NFS: Remove private spinlock in struct nfs_pgio_header
      SUNRPC: Remove rpc_authflavor_lock in favour of RCU locking
      SUNRPC: Lockless lookup of RPCSEC_GSS mechanisms
      SUNRPC: Replace krb5_seq_lock with a lockless scheme
      NFS: Fix dentry revalidation on NFSv4 lookup
      NFS: Refactor nfs_lookup_revalidate()
      NFSv4: Fix lookup revalidate of regular files
      SUNRPC: Fix a compile warning for cmpxchg64()
      Merge tag 'nfs-rdma-for-4.20-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
      SUNRPC: Clean up the AUTH cache code
      SUNRPC: Simplify lookup code
      SUNRPC: Convert auth creds to use refcount_t
      SUNRPC: Convert the auth cred cache to use refcount_t

 fs/nfs/delegation.c                        |   17 +-
 fs/nfs/dir.c                               |  295 ++++----
 fs/nfs/filelayout/filelayout.c             |    1 +
 fs/nfs/flexfilelayout/flexfilelayout.c     |    1 +
 fs/nfs/flexfilelayout/flexfilelayoutdev.c  |    2 +-
 fs/nfs/inode.c                             |   70 +-
 fs/nfs/nfs3proc.c                          |    5 +
 fs/nfs/nfs3xdr.c                           |   10 +-
 fs/nfs/nfs4_fs.h                           |    3 +-
 fs/nfs/nfs4client.c                        |   16 +-
 fs/nfs/nfs4proc.c                          |   53 +-
 fs/nfs/nfs4state.c                         |  254 ++++---
 fs/nfs/nfs4xdr.c                           |    2 +-
 fs/nfs/pagelist.c                          |   49 +-
 fs/nfs/pnfs.c                              |   16 +-
 fs/nfs/pnfs.h                              |    1 +
 fs/nfs/read.c                              |   10 +-
 include/linux/nfs_fs.h                     |    2 +
 include/linux/nfs_fs_sb.h                  |    3 +
 include/linux/nfs_xdr.h                    |   28 +-
 include/linux/sunrpc/auth.h                |   18 +-
 include/linux/sunrpc/auth_gss.h            |    1 +
 include/linux/sunrpc/bc_xprt.h             |    1 +
 include/linux/sunrpc/gss_krb5.h            |    3 +-
 include/linux/sunrpc/sched.h               |   10 +-
 include/linux/sunrpc/svc_xprt.h            |    1 -
 include/linux/sunrpc/xdr.h                 |   11 +-
 include/linux/sunrpc/xprt.h                |   35 +-
 include/linux/sunrpc/xprtsock.h            |   36 +-
 include/trace/events/rpcrdma.h             |   18 +-
 include/trace/events/sunrpc.h              |   37 +-
 net/sunrpc/auth.c                          |  310 ++++----
 net/sunrpc/auth_generic.c                  |    2 +-
 net/sunrpc/auth_gss/auth_gss.c             |   45 +-
 net/sunrpc/auth_gss/gss_krb5_seal.c        |   38 +-
 net/sunrpc/auth_gss/gss_krb5_wrap.c        |    8 +-
 net/sunrpc/auth_gss/gss_mech_switch.c      |   28 +-
 net/sunrpc/auth_gss/gss_rpc_xdr.c          |    1 +
 net/sunrpc/auth_null.c                     |    6 +-
 net/sunrpc/auth_unix.c                     |    4 +-
 net/sunrpc/backchannel_rqst.c              |    1 -
 net/sunrpc/clnt.c                          |  174 +++--
 net/sunrpc/sched.c                         |  178 +++--
 net/sunrpc/socklib.c                       |   10 +-
 net/sunrpc/svc_xprt.c                      |    2 -
 net/sunrpc/svcsock.c                       |    6 +-
 net/sunrpc/xdr.c                           |   34 +
 net/sunrpc/xprt.c                          |  908 ++++++++++++++++-------
 net/sunrpc/xprtrdma/backchannel.c          |   20 +-
 net/sunrpc/xprtrdma/fmr_ops.c              |  131 ++--
 net/sunrpc/xprtrdma/frwr_ops.c             |  137 ++--
 net/sunrpc/xprtrdma/rpc_rdma.c             |   30 +-
 net/sunrpc/xprtrdma/svc_rdma_backchannel.c |   15 +-
 net/sunrpc/xprtrdma/transport.c            |  120 ++-
 net/sunrpc/xprtrdma/verbs.c                |  178 ++---
 net/sunrpc/xprtrdma/xprt_rdma.h            |   18 +-
 net/sunrpc/xprtsock.c                      | 1107 ++++++++++++----------------
 57 files changed, 2481 insertions(+), 2039 deletions(-)

-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@xxxxxxxxxxxxxxx






[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux