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 ��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥