[GIT PULL] Please pull NFS client updates for 4.8

From: Trond Myklebust
Date: Sat Jul 30 2016 - 18:37:28 EST


Hi Linus,

The following changes since commit 92d21ac74a9e3c09b0b01c764e530657e4c85c49:

Linux 4.7-rc7 (2016-07-10 20:24:59 -0700)

are available in the git repository at:

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

for you to fetch changes up to 944171cbf499d3445c749f7c13c46de0a564a905:

pNFS: Actively set attributes as invalid if LAYOUTCOMMIT is outstanding (2016-07-28 14:49:08 -0400)

Cheers
 Trond

----------------------------------------------------------------
NFS client updates for Linux 4.8

Highlights include:

Stable bugfixes:
- nfs: don't create zero-length requests
- Several LAYOUTGET bugfixes

Features:
- Several performance related features
- More aggressive caching when we can rely on close-to-open cache
consistency
- Remove serialisation of O_DIRECT reads and writes
- Optimise several code paths to not flush to disk unnecessarily. However
allow for the idiosyncracies of pNFS for those layout types that need
to issue a LAYOUTCOMMIT before the metadata can be updated on the server.
- SUNRPC updates to the client data receive path
- pNFS/SCSI support RH/Fedora dm-mpath device nodes
- pNFS files/flexfiles can now use unprivileged ports when the generic NFS
mount options allow it.

Bugfixes:
- Don't use RDMA direct data placement together with data integrity or
privacy security flavours
- Remove the RDMA ALLPHYSICAL memory registration mode as it has potential
security holes.
- Several layout recall fixes to improve NFSv4.1 protocol compliance.
- Fix an Oops in the pNFS files and flexfiles connection setup to the DS
- Allow retry of operations that used a returned delegation stateid
- Don't mark the inode as revalidated if a LAYOUTCOMMIT is outstanding
- Fix writeback races in nfs4_copy_range() and nfs42_proc_deallocate()

----------------------------------------------------------------
Artem Savkov (1):
Fix NULL pointer dereference in bl_free_device().

Benjamin Coddington (3):
pnfs/blocklayout: put deviceid node after releasing bl_ext_lock
nfs: don't create zero-length requests
pNFS: Actively set attributes as invalid if LAYOUTCOMMIT is outstanding

Christoph Hellwig (3):
nfs/blocklayout: use proper fmode for opening block devices
nfs/blocklayout: refactor open-by-wwn
nfs/blocklayout: support RH/Fedora dm-mpath device nodes

Chuck Lever (24):
xprtrdma: Remove FMRs from the unmap list after unmapping
xprtrdma: Create common scatterlist fields in rpcrdma_mw
xprtrdma: Move init and release helpers
xprtrdma: Rename fields in rpcrdma_fmr
xprtrdma: Use scatterlist for DMA mapping and unmapping under FMR
xprtrdma: Refactor MR recovery work queues
xprtrdma: Do not leak an MW during a DMA map failure
xprtrdma: Remove ALLPHYSICAL memory registration mode
xprtrdma: Remove rpcrdma_map_one() and friends
xprtrdma: Clean up device capability detection
xprtrdma: Reply buffer exhaustion can be catastrophic
xprtrdma: Honor ->send_request API contract
xprtrdma: Chunk list encoders must not return zero
xprtrdma: Allocate MRs on demand
xprtrdma: Release orphaned MRs immediately
xprtrdma: Place registered MWs on a per-req list
xprtrdma: Chunk list encoders no longer share one rl_segments array
xprtrdma: rpcrdma_inline_fixup() overruns the receive page list
xprtrdma: Do not update {head, tail}.iov_len in rpcrdma_inline_fixup()
xprtrdma: Update only specific fields in private receive buffer
xprtrdma: Clean up fixup_copy_count accounting
xprtrdma: No direct data placement with krb5i and krb5p
svc: Avoid garbage replies when pc_func() returns rpc_drop_reply
NFS: Don't drop CB requests with invalid principals

Frank Sorenson (4):
sunrpc: Fix bit count when setting hashtable size to power-of-two
sunrpc: Fix reserved port range calculation
sunrpc: Prevent resvport min/max inversion via sysctl
sunrpc: Prevent resvport min/max inversion via sysfs and module parameter

Kinglong Mee (2):
nfs/blocklayout: Make sure calculate signature length aligned
nfs/blocklayout: Check max uuids and devices before decoding

Scott Mayhew (1):
sunrpc: move NO_CRKEY_TIMEOUT to the auth->au_flags

Steve Dickson (1):
mount: use sec= that was specified on the command line

Tigran Mkrtchyan (2):
nfs4: clnt: respect noresvport when establishing connections to DSes
nfs4: flexfiles: respect noresvport when establishing connections to DSes

Trond Myklebust (69):
SUNRPC: Small optimisation of client receive
SUNRPC: Consolidate xs_tcp_data_ready and xs_data_ready
SUNRPC: RPC transport queue must be low latency
SUNRPC: Reduce latency when send queue is congested
SUNRPC: Fix suspicious enobufs issues.
NFS: Don't flush caches for a getattr that races with writeback
NFS: Cache access checks more aggressively
NFS: Cache aggressively when file is open for writing
NFS: Kill NFS_INO_NFS_INO_FLUSHING: it is a performance killer
NFS: writepage of a single page should not be synchronous
NFS: Don't hold the inode lock across fsync()
NFS: Don't call COMMIT in ->releasepage()
NFS: Fix an Oops in the pNFS files and flexfiles connection setup to the DS
NFS/pnfs: Do not clobber existing pgio_done_cb in nfs4_proc_read_setup
NFSv4: Allow retry of operations that used a returned delegation stateid
pNFS/files: Fix layoutcommit after a commit to DS
pNFS/flexfiles: Fix layoutcommit after a commit to DS
pNFS/flexfiles: Clean up calls to pnfs_set_layoutcommit()
pNFS: Files and flexfiles always need to commit before layoutcommit
pNFS: Ensure we layoutcommit before revalidating attributes
pNFS: pnfs_layoutcommit_outstanding() is no longer used when !CONFIG_NFS_V4_1
NFS: Fix O_DIRECT verifier problems
NFS: Ensure we reset the write verifier 'committed' value on resend.
NFS: Remove racy size manipulations in O_DIRECT
NFS Cleanup: move call to generic_write_checks() into fs/nfs/direct.c
NFS: Move buffered I/O locking into nfs_file_write()
NFS: Do not serialise O_DIRECT reads and writes
NFS: Cleanup nfs_direct_complete()
NFS: Remove redundant waits for O_DIRECT in fsync() and write_begin()
NFS: Remove unused function nfs_revalidate_mapping_protected()
NFS: Do not aggressively cache file attributes in the case of O_DIRECT
NFS: Getattr doesn't require data sync semantics
NFSv4.2: Fix a race in nfs42_proc_deallocate()
NFSv4.2: Fix writeback races in nfs4_copy_file_range
NFSv4.2: llseek(SEEK_HOLE) and llseek(SEEK_DATA) don't require data sync
NFS nfs_vm_page_mkwrite: Don't freeze me, Bro...
NFSv4: Revert "Truncating file opens should also sync O_DIRECT writes"
Merge tag 'nfs-rdma-4.8-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma
SUNRPC: Fix infinite looping in rpc_clnt_iterate_for_each_xprt
pNFS: Don't mark the inode as revalidated if a LAYOUTCOMMIT is outstanding
pNFS: Fix post-layoutget error handling in pnfs_update_layout()
pNFS: Separate handling of NFS4ERR_LAYOUTTRYLATER and RECALLCONFLICT
pNFS: Handle NFS4ERR_RECALLCONFLICT correctly in LAYOUTGET
pNFS: Fix LAYOUTGET handling of NFS4ERR_BAD_STATEID and NFS4ERR_EXPIRED
Merge tag 'nfs-rdma-4.8-2' of git://git.linux-nfs.org/projects/anna/nfs-rdma
pNFS/files: filelayout_write_done_cb must call nfs_writeback_update_inode()
Merge commit 'e7bdea7750eb'
pNFS: LAYOUTRETURN should only update the stateid if the layout is valid
pNFS: Clear the layout return tracking on layout reinitialisation
pNFS: Always update the layout stateid if NFS_LAYOUT_INVALID_STID is set
pNFS: Always update the layout barrier seqid on LAYOUTGET
pNFS: Fix CB_LAYOUTRECALL stateid verification
pNFS: Ensure layoutreturn acts as a completion for layout callbacks
pNFS: Do not set plh_return_seq for non-callback related layoutreturns
NFS: pnfs_mark_matching_lsegs_return() should match the layout sequence id
pNFS: Cleanup - don't open code pnfs_mark_layout_stateid_invalid()
pNFS: Clear the layout metadata if the server changed the layout stateid
pNFS: Remove redundant pnfs_mark_layout_returned_if_empty()
pNFS: Remove redundant stateid invalidation
pNFS: Cleanup - do layout segment initialisation in one place
pNFS: Remove redundant smp_mb() from pnfs_init_lseg()
SUNRPC: Fix a compiler warning in fs/nfs/clnt.c
Merge branch 'sunrpc'
Merge branch 'writeback'
Merge branch 'pnfs'
Merge branch 'nfs-rdma'
NFSv4: Fix warning "no previous prototype for ânfs4_listxattrâ"
NFSv4.2: Fix warning "variable âstateidsâ set but not used"
NFSv4: Clean up lookup of SECINFO_NO_NAME

kbuild test robot (1):
xprtrdma: fix semicolon.cocci warnings

fs/nfs/Makefile | 2 +-
fs/nfs/blocklayout/dev.c | 110 +++++++---
fs/nfs/blocklayout/extent_tree.c | 27 ++-
fs/nfs/callback_proc.c | 64 ++++--
fs/nfs/callback_xdr.c | 6 +-
fs/nfs/client.c | 22 +-
fs/nfs/dir.c | 52 +++--
fs/nfs/direct.c | 93 +++-----
fs/nfs/file.c | 100 +++------
fs/nfs/filelayout/filelayout.c | 18 +-
fs/nfs/flexfilelayout/flexfilelayout.c | 23 +-
fs/nfs/inode.c | 138 ++++++------
fs/nfs/internal.h | 62 +++++-
fs/nfs/io.c | 147 +++++++++++++
fs/nfs/nfs3client.c | 14 +-
fs/nfs/nfs42proc.c | 24 ++-
fs/nfs/nfs42xdr.c | 12 +-
fs/nfs/nfs4_fs.h | 1 +
fs/nfs/nfs4client.c | 26 ++-
fs/nfs/nfs4file.c | 16 +-
fs/nfs/nfs4proc.c | 153 ++++++-------
fs/nfs/nfs4xdr.c | 11 +-
fs/nfs/nfstrace.h | 1 -
fs/nfs/pnfs.c | 191 ++++++++++-------
fs/nfs/pnfs.h | 34 ++-
fs/nfs/pnfs_nfs.c | 13 +-
fs/nfs/super.c | 14 +-
fs/nfs/write.c | 44 ++--
include/linux/nfs_fs.h | 3 +-
include/linux/nfs_xdr.h | 5 +-
include/linux/sunrpc/auth.h | 9 +-
include/linux/sunrpc/gss_api.h | 2 +
include/linux/sunrpc/sched.h | 5 +
include/linux/sunrpc/xprtsock.h | 1 +
net/sunrpc/auth.c | 8 +-
net/sunrpc/auth_generic.c | 9 +-
net/sunrpc/auth_gss/auth_gss.c | 3 +
net/sunrpc/auth_gss/gss_krb5_mech.c | 2 +
net/sunrpc/auth_gss/gss_mech_switch.c | 12 ++
net/sunrpc/auth_null.c | 1 +
net/sunrpc/auth_unix.c | 1 +
net/sunrpc/clnt.c | 2 +-
net/sunrpc/sched.c | 67 ++++--
net/sunrpc/svc.c | 8 +-
net/sunrpc/xprt.c | 14 +-
net/sunrpc/xprtmultipath.c | 8 +-
net/sunrpc/xprtrdma/Makefile | 2 +-
net/sunrpc/xprtrdma/fmr_ops.c | 378 +++++++++++++++------------------
net/sunrpc/xprtrdma/frwr_ops.c | 369 ++++++++++++--------------------
net/sunrpc/xprtrdma/physical_ops.c | 122 -----------
net/sunrpc/xprtrdma/rpc_rdma.c | 274 ++++++++++++------------
net/sunrpc/xprtrdma/transport.c | 40 ++--
net/sunrpc/xprtrdma/verbs.c | 242 ++++++++++++++-------
net/sunrpc/xprtrdma/xprt_rdma.h | 118 ++++------
net/sunrpc/xprtsock.c | 125 ++++++-----
55 files changed, 1748 insertions(+), 1500 deletions(-)
create mode 100644 fs/nfs/io.c
delete mode 100644 net/sunrpc/xprtrdma/physical_ops.c
--
Trond Myklebust
Linux NFS client maintainer, PrimaryData
trond.myklebust@xxxxxxxxxxxxxxx