[GIT PULL] Please pull NFS client updates for 4.10

From: Trond Myklebust
Date: Thu Dec 15 2016 - 18:34:47 EST

Hi Linus,

The following changes since commit e5517c2a5a49ed5e99047008629f1cd60246ea0e:

Linux 4.9-rc7 (2016-11-27 13:08:04 -0800)

are available in the git repository at:

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

for you to fetch changes up to 2549f307b5997bf5dd91071428e8090d9faa8b1b:

Merge tag 'nfs-rdma-4.10-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma (2016-12-10 10:31:44 -0500)


NFS client updates for Linux 4.10

Highlights include:

Stable bugfixes:
- Fix a pnfs deadlock between read resends and layoutreturn
- Don't invalidate the layout stateid while a layout return is outstanding
- Don't schedule a layoutreturn if the layout stateid is marked as invalid
- On a pNFS error, do not send LAYOUTGET until the LAYOUTRETURN is complete
- SUNRPC: fix refcounting problems with auth_gss messages.

- Add client support for the NFSv4 umask attribute.
- NFSv4: Correct support for flock() stateids.
- Add a LAYOUTRETURN operation to CLOSE and DELEGRETURN when return-on-close
is specified
- Allow the pNFS/flexfiles layoutstat information to piggyback on LAYOUTRETURN
- Optimise away redundant GETATTR calls when doing state recovery and/or
when not required by cache revalidation rules or close-to-open cache
- Attribute cache improvements
- RPC/RDMA support for SG_GAP devices

- NFS: Fix performance regressions in readdir
- pNFS/flexfiles: Fix a deadlock on LAYOUTGET
- NFSv4: Add missing nfs_put_lock_context()
- NFSv4.1: Fix regression in callback retry handling
- Fix false positive NFSv4.0 trunking detection.
- pNFS/flexfiles: Only send layoutstats updates for mirrors that were updated
- Various layout stateid related bugfixes
- RPC/RDMA bugfixes

Andreas Gruenbacher (1):
nfs: add support for the umask attribute

Anna Schumaker (2):
NFS: Remove unused authflavour parameter from nfs_get_client()
NFS: Remove unused argument from nfs_direct_write_complete()

Chuck Lever (12):
xprtrdma: Cap size of callback buffer resources
xprtrdma: Make FRWR send queue entry accounting more accurate
xprtrdma: Support for SG_GAP devices
SUNRPC: Proper metric accounting when RPC is not transmitted
xprtrdma: Address coverity complaint about wait_for_completion()
xprtrdma: Avoid calls to ro_unmap_safe()
xprtrdma: Refactor FRMR invalidation
xprtrdma: Update documenting comment
xprtrdma: Squelch "max send, max recv" messages at connect time
xprtrdma: Shorten QP access error message
xprtrdma: Update dprintk in rpcrdma_count_chunks
xprtrdma: Relocate connection helper functions

Fred Isaman (2):
NFSv4.1: Fix regression in callback retry handling
pNFS/flexfiles: Fix a deadlock on LAYOUTGET

J. Bruce Fields (1):
nfs: fix false positives in nfs40_walk_client_list()

NeilBrown (9):
sunrpc: Don't engage exponential backoff when connection attempt is rejected.
NFS: remove l_pid field from nfs_lockowner
NFSv4: add flock_owner to open context
NFSv4: change nfs4_do_setattr to take an open_context instead of a nfs4_state.
NFSv4: change nfs4_select_rw_stateid to take a lock_context inplace of lock_owner
NFSv4: enhance nfs4_copy_lock_stateid to use a flock stateid if there is one
NFS: discard nfs_lockowner structure.
NFSv4: Add missing nfs_put_lock_context()
SUNRPC: fix refcounting problems with auth_gss messages.

Trond Myklebust (55):
NFSv4: Don't check file access when reclaiming state
NFSv4: Don't ask for the change attribute when reclaiming state
NFSv4: Don't request a GETATTR on open_downgrade.
NFSv4: Don't request close-to-open attribute when holding a delegation
NFSv4: Optimise away forced revalidation when we know the attributes are OK
pNFS: Fix a deadlock between read resends and layoutreturn
pNFS: Don't clear the layout stateid if a layout return is outstanding
pNFS: Clear NFS_LAYOUT_RETURN_REQUESTED when invalidating the layout stateid
pNFS: Force a retry of LAYOUTGET if the stateid doesn't match our cache
pNFS: On error, do not send LAYOUTGET until the LAYOUTRETURN has completed
pNFS: Fix race in pnfs_wait_on_layoutreturn
pNFS: consolidate the different range intersection tests
pNFS: Delay getting the layout header in CB_LAYOUTRECALL handlers
pNFS: Do not free layout segments that are marked for return
NFSv4: Ignore LAYOUTRETURN result if the layout doesn't match or is invalid
pNFS: Remove spurious wake up in pnfs_layout_remove_lseg()
pNFS: Skip checking for return-on-close if the layout is invalid
pNFS: Get rid of unnecessary layout parameter in encode_layoutreturn callback
pNFS: Don't mark layout segments invalid on layoutreturn in pnfs_roc
NFSv4: Fix missing operation accounting in NFS4_dec_delegreturn_sz
NFSv4: Add encode/decode of the layoutreturn op in CLOSE
NFSv4: Add encode/decode of the layoutreturn op in DELEGRETURN
pNFS: Clean up - add a helper to initialise struct layoutreturn_args
pNFS: Enable layoutreturn operation for return-on-close
pNFS: Prevent unnecessary layoutreturns after delegreturn
pNFS: Clear all layout segment state in pnfs_mark_layout_stateid_invalid
pNFS: Fix bugs in _pnfs_return_layout
pNFS: Sync the layout state bits in pnfs_cache_lseg_for_layoutreturn
pNFS: Don't mark the layout as freed if the last lseg is marked for return
pNFS: Wait on outstanding layoutreturns to complete in pnfs_roc()
pNFS: Skip invalid stateids when doing a bulk destroy
NFS: Fix a performance regression in readdir
NFS: Be more targeted about readdirplus use when doing lookup/revalidation
NFS: Allow getattr to also report readdirplus cache hits
pNFS/flexfiles: Don't attempt to send layoutstats if there are no entries
pNFS/flexfiles: Only send layoutstats updates for mirrors that were updated
NFSv4: Add a generic structure for managing layout-private information
pNFS: Allow layout drivers to manage private data in struct nfs4_layoutreturn
pNFS: Add a layoutreturn callback to performa layout-private setup
pNFS/flexfiles: Refactor encoding of the layoutreturn payload
pNFS/flexfiles: Clean up layoutstats
NFS: Fix up read of mirror stats
pNFS/flexfiles: Minor refactoring before adding iostats to layoutreturn
pNFS/flexfiles: Support sending layoutstats in layoutreturn
NFS: Fix incorrect mapping revalidation when holding a delegation
NFS: Fix incorrect size revalidation when holding a delegation
NFS: Only look at the change attribute cache state in nfs_check_verifier
NFSv4.1: Don't schedule lease recovery in nfs4_schedule_session_recovery()
pNFS: Release NFS_LAYOUT_RETURN when invalidating the layout stateid
pNFS/flexfiles: Fix ff_layout_add_ds_error_locked()
pNFS: Layoutreturn must free the layout after the layout-private data
pNFS/flexfiles: Remove a redundant parameter in ff_layout_encode_ioerr()
pNFS/flexfiles: Ensure we have enough buffer for layoutreturn
Merge tag 'nfs-rdma-4.10-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma

Wei Yongjun (1):
NFS: fix typo in parameter description

fs/nfs/callback_proc.c | 99 +++++---
fs/nfs/client.c | 6 +-
fs/nfs/delegation.c | 4 -
fs/nfs/dir.c | 73 +++---
fs/nfs/direct.c | 12 +-
fs/nfs/file.c | 5 +-
fs/nfs/filelayout/filelayoutdev.c | 3 +-
fs/nfs/flexfilelayout/flexfilelayout.c | 313 +++++++++++++++--------
fs/nfs/flexfilelayout/flexfilelayout.h | 23 +-
fs/nfs/flexfilelayout/flexfilelayoutdev.c | 151 +++++++----
fs/nfs/inode.c | 51 ++--
fs/nfs/internal.h | 9 +-
fs/nfs/nfs3client.c | 5 +-
fs/nfs/nfs42proc.c | 9 +-
fs/nfs/nfs42xdr.c | 5 +-
fs/nfs/nfs4_fs.h | 2 +-
fs/nfs/nfs4client.c | 32 ++-
fs/nfs/nfs4file.c | 2 +-
fs/nfs/nfs4proc.c | 233 +++++++++++------
fs/nfs/nfs4session.c | 2 +-
fs/nfs/nfs4state.c | 27 +-
fs/nfs/nfs4xdr.c | 96 +++++--
fs/nfs/objlayout/objlayout.c | 4 +-
fs/nfs/objlayout/objlayout.h | 1 -
fs/nfs/pagelist.c | 3 +-
fs/nfs/pnfs.c | 407 ++++++++++++++++++------------
fs/nfs/pnfs.h | 77 ++++--
fs/nfs/pnfs_nfs.c | 28 +-
fs/nfs/super.c | 2 +-
fs/nfs/write.c | 3 +-
include/linux/nfs4.h | 1 +
include/linux/nfs_fs.h | 11 +-
include/linux/nfs_xdr.h | 27 +-
net/sunrpc/auth_gss/auth_gss.c | 7 +-
net/sunrpc/clnt.c | 2 +
net/sunrpc/stats.c | 10 +-
net/sunrpc/xprt.c | 3 +-
net/sunrpc/xprtrdma/backchannel.c | 4 +-
net/sunrpc/xprtrdma/frwr_ops.c | 94 ++++---
net/sunrpc/xprtrdma/rpc_rdma.c | 36 +--
net/sunrpc/xprtrdma/transport.c | 34 ++-
net/sunrpc/xprtrdma/verbs.c | 37 +--
net/sunrpc/xprtrdma/xprt_rdma.h | 31 ++-
43 files changed, 1258 insertions(+), 726 deletions(-)

Trond Myklebust
Linux NFS client maintainer, PrimaryData