From patchwork Tue Mar 12 11:46:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10849125 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5415817DF for ; Tue, 12 Mar 2019 11:46:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3FBE1295D9 for ; Tue, 12 Mar 2019 11:46:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 33A94295DC; Tue, 12 Mar 2019 11:46:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2A25A295D9 for ; Tue, 12 Mar 2019 11:46:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726255AbfCLLqh (ORCPT ); Tue, 12 Mar 2019 07:46:37 -0400 Received: from mail-eopbgr780107.outbound.protection.outlook.com ([40.107.78.107]:23168 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726193AbfCLLqh (ORCPT ); Tue, 12 Mar 2019 07:46:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4uhxJDJEeA19Dfjm3tWDq3caOySP+ptNhd46ShSRgnQ=; b=muyLkCOMWDzXaFGjne3Efob0wcRjEK37cAqgD2syjVL3PjpujMz0dOHkwnpsVNOvM/Ayc6LIH6/U/o8p7o909wqQCFId/ax2FCG12OwOiGxC/fX/22QFdYRvjY1xIdkssijlFONpNfb2t0w4nchMNFEXd9f9rkJcHGaiIXPrnaE= Received: from SN6PR13MB2494.namprd13.prod.outlook.com (52.135.95.148) by SN6PR13MB2239.namprd13.prod.outlook.com (52.135.93.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1709.11; Tue, 12 Mar 2019 11:46:27 +0000 Received: from SN6PR13MB2494.namprd13.prod.outlook.com ([fe80::d1d6:9683:8c9b:3dcb]) by SN6PR13MB2494.namprd13.prod.outlook.com ([fe80::d1d6:9683:8c9b:3dcb%3]) with mapi id 15.20.1709.011; Tue, 12 Mar 2019 11:46:27 +0000 From: Trond Myklebust To: "torvalds@linux-foundation.org" CC: "linux-kernel@vger.kernel.org" , "linux-nfs@vger.kernel.org" Subject: [GIT PULL] Please pull NFS client updates for Linux 5.1 Thread-Topic: [GIT PULL] Please pull NFS client updates for Linux 5.1 Thread-Index: AQHU2Mk5b4TSH1eMJEytj7kGZziiTg== Date: Tue, 12 Mar 2019 11:46:27 +0000 Message-ID: <96ed9b50bba1d5d2929f42f41109e122d6aac5e9.camel@hammerspace.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=trondmy@hammerspace.com; x-originating-ip: [68.40.189.247] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bb0e7616-c73a-4c50-6da0-08d6a6e05c9f x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(2017052603328)(7153060)(7193020);SRVR:SN6PR13MB2239; x-ms-traffictypediagnostic: SN6PR13MB2239: x-microsoft-antispam-prvs: x-forefront-prvs: 09749A275C x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(346002)(366004)(136003)(39830400003)(396003)(376002)(199004)(189003)(86362001)(6486002)(7736002)(305945005)(53936002)(36756003)(476003)(14454004)(486006)(478600001)(81166006)(6512007)(81156014)(5640700003)(6916009)(2616005)(8936002)(8676002)(1730700003)(102836004)(97736004)(71190400001)(71200400001)(118296001)(6436002)(5660300002)(99286004)(6506007)(15650500001)(2906002)(25786009)(4326008)(30864003)(54906003)(66066001)(68736007)(3846002)(6116002)(2501003)(2351001)(26005)(316002)(186003)(14444005)(256004)(105586002)(106356001);DIR:OUT;SFP:1102;SCL:1;SRVR:SN6PR13MB2239;H:SN6PR13MB2494.namprd13.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: hammerspace.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: kDTCsyhNw23wXmOzZ5LlCFKsIAGHEpSC0l+Ixjzq7db7OHo0ibOS2rI1RCaMBCYQbWwUrgaSkbU4Vxrd6K2pI98AgB3a/6YX4bioqwklj4pyUdmqgzSD81TG/rC7buB3fMFhWvbFkyOD9CXV1t+LkU6k4xNXLDQZdbWqUvithtsUnMQUlNsfIbOQtFCcU8aDDxtphPMsn/ea+qZf7HqPYlTDkREnhSpHrdcJMCpuYplbETaekNaJQChY0nFvRHj7N6lExM3MeB41QpF7QBMTdTWy/BRvdWxWurC3QFdmLzVIXvMwKgk2hke7Vn/oZhFuATA51zACKjh/SW88zRhvQP4S7K/EZ0p1Rn1BT4AqjLAdxIX47najXary1ylp8Dcvt8qDtkq9CyG/PnBttWYk5XFuNoL6hgyeBAxhixfJ15s= Content-ID: <72AA911F7790BA40822D8EB0C03640D2@namprd13.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb0e7616-c73a-4c50-6da0-08d6a6e05c9f X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2019 11:46:27.5200 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR13MB2239 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi Linus, The following changes since commit 2137397c92aec3713fa10be3c9b830f9a1674e60: Merge tag 'sound-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound (2019-02-20 09:42:52 -0800) are available in the Git repository at: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-5.1-1 for you to fetch changes up to 4d6c671ace569d4b0d3f8d92ab3aef18a5d166bc: SUNRPC: Take the transport send lock before binding+connecting (2019-03-10 14:08:19 -0400) ---------------------------------------------------------------- NFS client updates for Linux 5.1 Highlights include: Stable fixes: - Fixes for NFS I/O request leakages - Fix error handling paths in the NFS I/O recoalescing code - Reinitialise NFSv4.1 sequence results before retransmitting a request - Fix a soft lockup in the delegation recovery code - Bulk destroy of layouts needs to be safe w.r.t. umount - Prevent thundering herd issues when the SUNRPC socket is not connected - Respect RPC call timeouts when retrying transmission Features: - Convert rpc auth layer to use xdr_streams - Config option to disable insecure RPCSEC_GSS crypto types - Reduce size of RPC receive buffers - Readdirplus optimization by cache mechanism - Convert SUNRPC socket send code to use iov_iter() - SUNRPC micro-optimisations to avoid indirect calls - Add support for the pNFS LAYOUTERROR operation and use it with the pNFS/flexfiles driver - Add trace events to report non-zero NFS status codes - Various removals of unnecessary dprintks Bugfixes and cleanups: - Fix a number of sparse warnings and documentation format warnings - Fix nfs_parse_devname to not modify it's argument - Fix potential corruption of page being written through pNFS/blocks - fix xfstest generic/099 failures on nfsv3 - Avoid NFSv4.1 "false retries" when RPC calls are interrupted - Abort I/O early if the pNFS/flexfiles layout segment was invalidated - Avoid unnecessary pNFS/flexfiles layout invalidations ---------------------------------------------------------------- Anna Schumaker (1): NFS: Add missing encode / decode sequence_maxsz to v4.2 operations Chuck Lever (23): xprtrdma: Fix sparse warnings xprtrdma: Check inline size before providing a Write chunk xprtrdma: Reduce the doorbell rate (Receive) SUNRPC: Display symbolic flag names in RPC trace events SUNRPC: Add xdr_stream::rqst field SUNRPC: Add XDR overflow trace event SUNRPC: Add trace event that reports reply page vector alignment NFS: Remove print_overflow_msg() NFS: Add trace events to report non-zero NFS status codes SUNRPC: Remove some dprintk() call sites from auth functions SUNRPC: Remove rpc_xprt::tsh_size SUNRPC: Add build option to disable support for insecure enctypes SUNRPC: Use struct xdr_stream when constructing RPC Call header SUNRPC: Clean up rpc_verify_header() SUNRPC: Use struct xdr_stream when decoding RPC Reply header SUNRPC: Introduce trace points in rpc_auth_gss.ko SUNRPC: Remove xdr_buf_trim() SUNRPC: Add SPDX IDs to some net/sunrpc/auth_gss/ files SUNRPC: Introduce rpc_prepare_reply_pages() NFS: Account for XDR pad of buf->pages SUNRPC: Make AUTH_SYS and AUTH_NULL set au_verfsize SUNRPC: Add rpc_auth::au_ralign field SUNRPC: Use au_rslack when computing reply buffer size Eric W. Biederman (1): fs/nfs: Fix nfs_parse_devname to not modify it's argument Julia Lawall (1): NFS: drop useless LIST_HEAD Kazuo Ito (2): pNFS: Fix potential corruption of page being written pNFS: Avoid read/modify/write when it is not necessary NeilBrown (1): SUNRPC: remove pointless test in unx_match() Trond Myklebust (58): NFS: Fix I/O request leakages NFS: Fix an I/O request leakage in nfs_do_recoalesce NFS: Don't recoalesce on error in nfs_pageio_complete_mirror() NFS: Clean up list moves of struct nfs_page NFS: Pass error information to the pgio error cleanup routine NFS: Ensure NFS writeback allocations don't recurse back into NFS. NFS: EINTR is also a fatal error. NFS: ENOMEM should also be a fatal error. NFS: Fix up documentation warnings NFS: Fix sparse annotations for nfs_set_open_stateid_locked() SUNRPC: Set memalloc_nofs_save() on all rpciod/xprtiod jobs SUNRPC: Use poll() to fix up the socket requeue races SUNRPC: Ensure rq_bytes_sent is reset before request transmission SUNRPC: Don't reset the stream record info when the receive worker is running SUNRPC: Handle zero length fragments correctly SUNRPC: Don't suppress socket errors when a message read completes SUNRPC: Initiate a connection close on an ESHUTDOWN error in stream receive SUNRPC: Convert xs_send_kvec() to use iov_iter_kvec() SUNRPC: Convert socket page send code to use iov_iter() SUNRPC: Further cleanups of xs_sendpages() SUNRPC: Remove the redundant 'zerocopy' argument to xs_sendpages() NFSv4.1: Avoid false retries when RPC calls are interrupted NFS: Fix a soft lockup in the delegation recovery code NFS/pnfs: Bulk destroy of layouts needs to be safe w.r.t. umount Merge tag 'nfs-rdma-for-5.1-1' of git://git.linux-nfs.org/projects/anna/linux-nfs SUNRPC: Fix an Oops in udp_poll() NFSv4.1: Reinitialise sequence results before retransmitting a request NFSv4.1: Don't process the sequence op more than once. NFSv4/flexfiles: Fix invalid deref in FF_LAYOUT_DEVID_NODE() NFS/flexfiles: Fix up sparse RCU annotations NFSv4/pnfs: Fix barriers in nfs4_mark_deviceid_unavailable() NFSv4/flexfiles: Abort I/O early if the layout segment was invalidated NFSv4.2: Add client support for the generic 'layouterror' RPC call NFS/flexfiles: Send LAYOUTERROR when failing over mirrored reads NFSv4: Handle early exit in layoutget by returning an error NFS/flexfiles: refactor calls to fs4_ff_layout_prepare_ds() NFS/flexfiles: Avoid unnecessary layout invalidations NFS/flexfiles: Remove bogus checks for invalid deviceids NFS/flexfiles: Don't invalidate DS deviceids for being unresponsive NFS/flexfiles: Speed up read failover when DSes are down NFS/flexfiles: Simplify nfs4_ff_layout_select_ds_fh() NFS/flexfiles: Simplify nfs4_ff_find_or_create_ds_client() NFS/flexfiles: Simplify ff_layout_get_ds_cred() NFS/flexfile: Simplify nfs4_ff_layout_ds_version() NFS/flexfile: Simplify nfs4_ff_layout_select_ds_stateid() NFS/flexfiles: Remove dead code in ff_layout_mirror_valid() NFS/flexfiles: Clean up mirror DS initialisation SUNRPC: Convert remaining GFP_NOIO, and GFP_NOWAIT sites in sunrpc NFSv4.1: Bump the default callback session slot count to 16 SUNRPC: Allow dynamic allocation of back channel slots SUNRPC: Prevent thundering herd when the socket is not connected SUNRPC: Fix up RPC back channel transmission SUNRPC: Respect RPC call timeouts when retrying transmission SUNRPC: Clean up SUNRPC: Remove redundant calls to RPC_IS_QUEUED() SUNRPC: Check whether the task was transmitted before rebind/reconnect SUNRPC: Micro-optimise when the task is known not to be sleeping SUNRPC: Take the transport send lock before binding+connecting ZhangXiaoxu (1): nfs: fix xfstest generic/099 failed on nfsv3 luanshi (1): NFS: readdirplus optimization by cache mechanism zhangliguang (2): NFS: Remove redundant semicolon NFS: Fix typo in comments of nfs_readdir_alloc_pages() fs/lockd/clnt4xdr.c | 14 - fs/lockd/clntxdr.c | 14 - fs/nfs/callback_xdr.c | 64 ++- fs/nfs/delegation.c | 22 +- fs/nfs/delegation.h | 1 + fs/nfs/dir.c | 98 ++++- fs/nfs/direct.c | 7 +- fs/nfs/file.c | 44 +- fs/nfs/flexfilelayout/flexfilelayout.c | 225 +++++++--- fs/nfs/flexfilelayout/flexfilelayout.h | 75 ++-- fs/nfs/flexfilelayout/flexfilelayoutdev.c | 161 +++---- fs/nfs/inode.c | 33 +- fs/nfs/internal.h | 5 +- fs/nfs/io.c | 12 +- fs/nfs/namespace.c | 8 +- fs/nfs/nfs2xdr.c | 124 ++---- fs/nfs/nfs3acl.c | 2 - fs/nfs/nfs3xdr.c | 209 +++------ fs/nfs/nfs42.h | 3 + fs/nfs/nfs42proc.c | 164 +++++++ fs/nfs/nfs42xdr.c | 130 +++++- fs/nfs/nfs4client.c | 33 +- fs/nfs/nfs4namespace.c | 5 +- fs/nfs/nfs4proc.c | 138 +++--- fs/nfs/nfs4session.c | 7 +- fs/nfs/nfs4session.h | 7 +- fs/nfs/nfs4state.c | 1 + fs/nfs/nfs4trace.h | 25 ++ fs/nfs/nfs4xdr.c | 530 +++++++---------------- fs/nfs/nfstrace.c | 1 + fs/nfs/nfstrace.h | 85 ++++ fs/nfs/pagelist.c | 47 +- fs/nfs/pnfs.c | 33 +- fs/nfs/pnfs.h | 2 + fs/nfs/pnfs_dev.c | 13 + fs/nfs/read.c | 2 +- fs/nfs/super.c | 2 +- fs/nfs/unlink.c | 8 +- fs/nfs/write.c | 19 +- fs/nfsd/nfs4callback.c | 13 - include/linux/nfs4.h | 1 + include/linux/nfs_fs_sb.h | 1 + include/linux/nfs_page.h | 10 + include/linux/nfs_xdr.h | 37 +- include/linux/sunrpc/auth.h | 44 +- include/linux/sunrpc/clnt.h | 3 + include/linux/sunrpc/gss_krb5_enctypes.h | 42 +- include/linux/sunrpc/sched.h | 9 + include/linux/sunrpc/xdr.h | 23 +- include/linux/sunrpc/xprt.h | 7 - include/linux/sunrpc/xprtsock.h | 1 + include/trace/events/rpcgss.h | 361 ++++++++++++++++ include/trace/events/rpcrdma.h | 12 +- include/trace/events/sunrpc.h | 361 +++++++++++++++- net/sunrpc/Kconfig | 16 + net/sunrpc/auth.c | 136 +++--- net/sunrpc/auth_gss/Makefile | 2 +- net/sunrpc/auth_gss/auth_gss.c | 553 ++++++++++++------------ net/sunrpc/auth_gss/gss_krb5_mech.c | 29 +- net/sunrpc/auth_gss/gss_krb5_wrap.c | 8 +- net/sunrpc/auth_gss/gss_mech_switch.c | 27 +- net/sunrpc/auth_gss/gss_rpc_upcall.c | 15 +- net/sunrpc/auth_gss/gss_rpc_upcall.h | 16 +- net/sunrpc/auth_gss/gss_rpc_xdr.c | 15 +- net/sunrpc/auth_gss/gss_rpc_xdr.h | 17 +- net/sunrpc/auth_gss/svcauth_gss.c | 3 +- net/sunrpc/auth_gss/trace.c | 11 + net/sunrpc/auth_null.c | 56 +-- net/sunrpc/auth_unix.c | 122 +++--- net/sunrpc/backchannel_rqst.c | 42 +- net/sunrpc/clnt.c | 660 ++++++++++++++++------------- net/sunrpc/sched.c | 17 +- net/sunrpc/svc.c | 19 +- net/sunrpc/xdr.c | 121 +++--- net/sunrpc/xprt.c | 23 +- net/sunrpc/xprtrdma/backchannel.c | 3 +- net/sunrpc/xprtrdma/frwr_ops.c | 4 +- net/sunrpc/xprtrdma/rpc_rdma.c | 22 +- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 1 - net/sunrpc/xprtrdma/transport.c | 2 - net/sunrpc/xprtrdma/verbs.c | 2 + net/sunrpc/xprtrdma/xprt_rdma.h | 12 +- net/sunrpc/xprtsock.c | 317 ++++++++------ 83 files changed, 3366 insertions(+), 2203 deletions(-) create mode 100644 include/trace/events/rpcgss.h create mode 100644 net/sunrpc/auth_gss/trace.c