Hi Linus, The following changes since commit 786b71f5b754273ccef6d9462e52062b3e1f9877: Merge tag 'nds32-for-linus-4.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux (2018-05-28 05:25:57 -0700) are available in the Git repository at: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.18-1 for you to fetch changes up to 93b7f7ad2018d2037559b1d0892417864c78b371: skip LAYOUTRETURN if layout is invalid (2018-06-12 08:48:04 -0400) Cheers, Trond ---------------------------------------------------------------- NFS client updates for Linux 4.18 Highlights include: Stable fixes: - Fix a 1-byte stack overflow in nfs_idmap_read_and_verify_message - Fix a hang due to incorrect error returns in rpcrdma_convert_iovs() - Revert an incorrect change to the NFSv4.1 callback channel - Fix a bug in the NFSv4.1 sequence error handling Features and optimisations: - Support for piggybacking a LAYOUTGET operation to the OPEN compound - RDMA performance enhancements to deal with transport congestion - Add proper SPDX tags for NetApp-contributed RDMA source - Do not request delegated file attributes (size+change) from the server - Optimise away a GETATTR in the lookup revalidate code when doing NFSv4 OPEN - Optimise away unnecessary lookups for rename targets - Misc performance improvements when freeing NFSv4 delegations Bugfixes and cleanups: - Try to fail quickly if proto=rdma - Clean up RDMA receive trace points - Fix sillyrename to return the delegation when appropriate - Misc attribute revalidation fixes - Immediately clear the pNFS layout on a file when the server returns ESTALE - Return NFS4ERR_DELAY when delegation/layout recalls fail due to igrab() - Fix the client behaviour on NFS4ERR_SEQ_FALSE_RETRY ---------------------------------------------------------------- Anna Schumaker (4): NFS: Move call to nfs4_state_protect_write() to nfs4_write_setup() NFS: Move call to nfs4_state_protect() to nfs4_commit_setup() NFS: Pass "privileged" value to nfs4_init_sequence() NFS: Merge nfs41_free_stateid() with _nfs41_free_stateid() Benjamin Coddington (1): NFSv4: Don't add a new lock on an interrupted wait for LOCK Chuck Lever (21): xprtrdma: Add proper SPDX tags for NetApp-contributed source xprtrdma: Try to fail quickly if proto=rdma xprtrdma: Create transport's CM ID in the correct network namespace xprtrdma: Fix max_send_wr computation SUNRPC: Initialize rpc_rqst outside of xprt->reserve_lock SUNRPC: Add a ->free_slot transport callout xprtrdma: Introduce ->alloc_slot call-out for xprtrdma xprtrdma: Make rpc_rqst part of rpcrdma_req xprtrdma: Clean up Receive trace points xprtrdma: Move Receive posting to Receive handler xprtrdma: Remove rpcrdma_ep_{post_recv, post_extra_recv} xprtrdma: Remove rpcrdma_buffer_get_req_locked() xprtrdma: Remove rpcrdma_buffer_get_rep_locked() xprtrdma: Make rpcrdma_sendctx_put_locked() a static function xprtrdma: Return -ENOBUFS when no pages are available xprtrdma: Move common wait_for_buffer_space call to parent function xprtrdma: Wait on empty sendctx queue xprtrdma: Add trace_xprtrdma_dma_map(mr) xprtrdma: Remove transfertypes array NFSv4.0: Remove cl_ipaddr from non-UCS client ID NFSv4.0: Remove transport protocol name from non-UCS client ID Dave Wysochanski (1): NFSv4: Fix possible 1-byte stack overflow in nfs_idmap_read_and_verify_message Fred Isaman (14): pnfs: Remove redundant assignment from nfs4_proc_layoutget(). pnfs: Store return value of decode_layoutget for later processing NFS4: move ctx into nfs4_run_open_task pnfs: Add layout driver flag PNFS_LAYOUTGET_ON_OPEN pnfs: refactor send_layoutget pnfs: move allocations out of nfs4_proc_layoutget pnfs: Add conditional encode/decode of LAYOUTGET within OPEN compound pnfs: Move nfs4_opendata into nfs4_fs.h pnfs: Change pnfs_alloc_init_layoutget_args call signature pnfs: Add LAYOUTGET to OPEN of a new file pnfs: Add LAYOUTGET to OPEN of an existing file pnfs: Stop attempting LAYOUTGET on OPEN on failure pnfs: Add barrier to prevent lgopen using LAYOUTGET during recall pnfs: Fix manipulation of NFS_LAYOUT_FIRST_LAYOUTGET NeilBrown (4): NFS: slight optimization for walking list for delegations NFS: use cond_resched() when restarting walk of delegation list. rculist: add list_for_each_entry_from_rcu() NFS: Avoid quadratic search when freeing delegations. Olga Kornievskaia (1): skip LAYOUTRETURN if layout is invalid Trond Myklebust (35): NFS: Optimise away the close-to-open GETATTR when we have NFSv4 OPEN NFS: If the VFS sets LOOKUP_REVAL then force a lookup of the dentry NFS: Optimise away lookups for rename targets NFSv4: Only pass the delegation to setattr if we're sending a truncate NFSv4: Fix sillyrename to return the delegation when appropriate NFS: Fix up sillyrename() NFS: Set the force revalidate flag if the inode is not completely initialised NFS: Ensure we revalidate the inode correctly after remove or rename NFS: Ensure we revalidate the inode correctly after setacl NFS: Fix up nfs_post_op_update_inode() to force ctime updates NFSv4: Always clear the pNFS layout when handling ESTALE pNFS: Refactor nfs4_layoutget_release() NFSv4/pnfs: Ensure pnfs_parse_lgopen() won't try to parse uninitialised data NFSv4/pnfs: Don't switch off layoutget-on-open for transient errors pNFS: Don't send LAYOUTGET on OPEN for read, if we already have cached data pnfs: Don't call commit on failed layoutget-on-open pnfs: Don't release the sequence slot until we've processed layoutget on open NFSv4: Don't request size+change attribute if they are delegated to us NFS: Pass the inode down to the getattr() callback NFSv4: Don't ask for delegated attributes when revalidating the inode NFSv4: Don't ask for delegated attributes when adding a hard link NFSv4: Ignore NFS_INO_REVAL_FORCED in nfs4_proc_access NFSv4: Ensure the inode is clean when we set a delegation NFS: fix up nfs_setattr_update_inode NFS: Fix attribute revalidation NFS: Improve caching while holding a delegation NFS: Ignore NFS_INO_REVAL_FORCED in nfs_check_inode_attributes() NFS: Filter cache invalidation when holding a delegation Merge tag 'nfs-rdma-for-4.18-1' of git://git.linux-nfs.org/projects/anna/linux-nfs NFSv4: Fix a compiler warning when CONFIG_NFS_V4_1 is undefined NFSv4: Return NFS4ERR_DELAY when a delegation recall fails due to igrab() NFSv4: Return NFS4ERR_DELAY when a layout recall fails due to igrab() NFSv4: Revert commit 5f83d86cf531d ("NFSv4.x: Fix wraparound issues..") NFSv4: Fix a typo in nfs41_sequence_process NFSv4.1: Fix the client behaviour on NFS4ERR_SEQ_FALSE_RETRY fs/nfs/callback_proc.c | 43 ++-- fs/nfs/client.c | 3 +- fs/nfs/delegation.c | 86 +++++-- fs/nfs/dir.c | 51 +++- fs/nfs/export.c | 2 +- fs/nfs/flexfilelayout/flexfilelayout.c | 1 + fs/nfs/inode.c | 126 +++++++--- fs/nfs/nfs3proc.c | 13 +- fs/nfs/nfs42proc.c | 6 +- fs/nfs/nfs4_fs.h | 27 +- fs/nfs/nfs4idmap.c | 5 +- fs/nfs/nfs4proc.c | 391 +++++++++++++---------------- fs/nfs/nfs4state.c | 8 + fs/nfs/nfs4xdr.c | 65 ++++- fs/nfs/pnfs.c | 331 +++++++++++++++++++++--- fs/nfs/pnfs.h | 28 ++- fs/nfs/proc.c | 13 +- fs/nfs/unlink.c | 20 +- fs/nfs/write.c | 10 +- include/linux/nfs_fs_sb.h | 2 + include/linux/nfs_xdr.h | 15 +- include/linux/rculist.h | 13 + include/linux/sunrpc/rpc_rdma.h | 1 + include/linux/sunrpc/xprt.h | 6 +- include/linux/sunrpc/xprtrdma.h | 1 + include/trace/events/rpcrdma.h | 76 ++++-- net/sunrpc/clnt.c | 1 + net/sunrpc/xprt.c | 17 +- net/sunrpc/xprtrdma/backchannel.c | 105 +++----- net/sunrpc/xprtrdma/fmr_ops.c | 23 ++ net/sunrpc/xprtrdma/frwr_ops.c | 31 ++- net/sunrpc/xprtrdma/module.c | 1 + net/sunrpc/xprtrdma/rpc_rdma.c | 66 ++--- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 1 + net/sunrpc/xprtrdma/transport.c | 64 +++-- net/sunrpc/xprtrdma/verbs.c | 291 +++++++++------------ net/sunrpc/xprtrdma/xprt_rdma.h | 26 +- net/sunrpc/xprtsock.c | 4 + 38 files changed, 1240 insertions(+), 733 deletions(-) -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@xxxxxxxxxxxxxxx ��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥