Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp5343645ybl; Tue, 10 Dec 2019 04:34:40 -0800 (PST) X-Google-Smtp-Source: APXvYqwjUPNAs2bo+qlQHJWm7Ceo8JHJXwpa0CfjqOZUMlJH5mT4MFYqntZ9FYZVLwAmvrxiOCkV X-Received: by 2002:a05:6830:603:: with SMTP id w3mr25406843oti.217.1575981280401; Tue, 10 Dec 2019 04:34:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575981280; cv=none; d=google.com; s=arc-20160816; b=wKKjaWqE9ViCT/ai6sbOHWsBDkDiI5m8ax5ULwVSJlNmGWMtWZVPaMi4w5piPuTNch CIWVP+fNd018+g5xzDNKu/4AlU8TMwDwZxWWNO+s2y3hmRgCcH4Jpnxzrq/wvv8xY8bl 3Vrwt2gt7nofWVUWcC6KzsYDI0/ZOa8h+UNPXpuYNfL/RkInw2yOnjw1svoqP1/PQOXe HFCVAh0LLOjcozlPF0Gyd44ey0nBXFrR3TgNVpl5J509M33Au5tDXabNiQkZhY5CPZKw kqQP9klNgK4xycHRUVAbkj8YP7dwWnvCEBVUGsb6SJJ5CfrKgoRICRraI9wFIqu4L5qb HCGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:message-id:date :subject:cc:to:from:dkim-signature; bh=6fYr/YcKzcP2lJn3q4ihsiLHTDwRl+UTgfXSrf1mhKc=; b=aBRifujpElRUE72D3xfmbWQhIf4cjDQegtZdsBLsOKyVc+vIpni4LiyZguF0spTkV5 K+fa5aqO1hVs3xd7Nb2jlQs3uunPrD8euD/Y11BX2AJLkST/7R2PneNXv8HJLMPily3H 7waAS6+QLcWB0zEGkeHryIamT8GCA1EN4n+JT3JBUZW94MkUpxx/5W1LrVS955NF5kyC tpUgpt0JcSE1ku0h1VLTI0HYegtXQHchlLMgy+NNiasdsf8sggJJLjOefqcWLq3YHNtT WeH/GNdXYCfEhcGLoxvE9V2bu3BzgQJULnyUJYzQHz40YVeuDKO13ySiD9Hsaoh3qfxt KCZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=EofWhJy3; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d24si1684658otp.110.2019.12.10.04.34.29; Tue, 10 Dec 2019 04:34:40 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=EofWhJy3; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727502AbfLJMdq (ORCPT + 99 others); Tue, 10 Dec 2019 07:33:46 -0500 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:42791 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727370AbfLJMbX (ORCPT ); Tue, 10 Dec 2019 07:31:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575981081; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6fYr/YcKzcP2lJn3q4ihsiLHTDwRl+UTgfXSrf1mhKc=; b=EofWhJy3gZ38PlMMq/xP+b2nMZ9oAzmN61F/yS+N8lcz7lmAWojLIdjdK4iFdmXcu4UyX+ GZSdkWJRnI+JRSFMGwYXM6hi+TSqJfX1SdI8H6XzBnCWOOidn921KYYab4m9j0BvDTTqxO EJfDYY0d2HYNSk+QPAVjLubS+T/1k28= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-59-ZBNHqDn8PB6I1ebKEiGXjA-1; Tue, 10 Dec 2019 07:31:18 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 95B98100551A; Tue, 10 Dec 2019 12:31:16 +0000 (UTC) Received: from coeurl.usersys.redhat.com (ovpn-123-90.rdu2.redhat.com [10.10.123.90]) by smtp.corp.redhat.com (Postfix) with ESMTP id 204D45D72A; Tue, 10 Dec 2019 12:31:15 +0000 (UTC) Received: by coeurl.usersys.redhat.com (Postfix, from userid 1000) id 8CD41209AF; Tue, 10 Dec 2019 07:31:15 -0500 (EST) From: Scott Mayhew To: anna.schumaker@netapp.com, trond.myklebust@hammerspace.com Cc: dhowells@redhat.com, viro@zeniv.linux.org.uk, linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org Subject: [PATCH v6 00/27] nfs: Mount API conversion Date: Tue, 10 Dec 2019 07:30:48 -0500 Message-Id: <20191210123115.1655-1-smayhew@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: ZBNHqDn8PB6I1ebKEiGXjA-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Hi Anna, Trond, Here's a set of patches that converts NFS to use the mount API. Note that there are a lot of preliminary patches, some from David and some from Al. The final patch (the one that does the actual conversion) from the David's initial posting has been split into 5 separate patches, and the entire set has been rebased on top of v5.5-rc1. Changes since v5: - fixed possible derefence of error pointer in nfs4_validate_fspath() reported by Dan Carpenter - rebased on top of v5.5-rc1 Changes since v4: - further split the original "NFS: Add fs_context support" patch (new patch is about 25% smaller than the v4 patch) - fixed NFSv4 referral mounts (broken in the original patch) - fixed leak of nfs_fattr when fs_context is freed Changes since v3: - changed license and copyright text in fs/nfs/fs_context.c Changes since v2: - fixed the conversion of the nconnect=3D option - added '#if IS_ENABLED(CONFIG_NFS_V4)' around nfs4_parse_monolithic() to avoid unused-function warning when compiling with v4 disabled Chagnes since v1: - split up patch 23 into 4 separate patches -Scott Al Viro (15): saner calling conventions for nfs_fs_mount_common() nfs: stash server into struct nfs_mount_info nfs: lift setting mount_info from nfs4_remote{,_referral}_mount nfs: fold nfs4_remote_fs_type and nfs4_remote_referral_fs_type nfs: don't bother setting/restoring export_path around do_nfs_root_mount() nfs4: fold nfs_do_root_mount/nfs_follow_remote_path nfs: lift setting mount_info from nfs_xdev_mount() nfs: stash nfs_subversion reference into nfs_mount_info nfs: don't bother passing nfs_subversion to ->try_mount() and nfs_fs_mount_common() nfs: merge xdev and remote file_system_type nfs: unexport nfs_fs_mount_common() nfs: don't pass nfs_subversion to ->create_server() nfs: get rid of mount_info ->fill_super() nfs_clone_sb_security(): simplify the check for server bogosity nfs: get rid of ->set_security() David Howells (8): NFS: Move mount parameterisation bits into their own file NFS: Constify mount argument match tables NFS: Rename struct nfs_parsed_mount_data to struct nfs_fs_context NFS: Split nfs_parse_mount_options() NFS: Deindent nfs_fs_context_parse_option() NFS: Add a small buffer in nfs_fs_context to avoid string dup NFS: Do some tidying of the parsing code NFS: Add fs_context support. Scott Mayhew (4): NFS: rename nfs_fs_context pointer arg in a few functions NFS: Convert mount option parsing to use functionality from fs_parser.h NFS: Additional refactoring for fs_context conversion NFS: Attach supplementary error information to fs_context. fs/nfs/Makefile | 2 +- fs/nfs/client.c | 80 +- fs/nfs/fs_context.c | 1424 +++++++++++++++++++++++++ fs/nfs/fscache.c | 2 +- fs/nfs/getroot.c | 73 +- fs/nfs/internal.h | 132 +-- fs/nfs/namespace.c | 146 ++- fs/nfs/nfs3_fs.h | 2 +- fs/nfs/nfs3client.c | 6 +- fs/nfs/nfs3proc.c | 2 +- fs/nfs/nfs4_fs.h | 9 +- fs/nfs/nfs4client.c | 99 +- fs/nfs/nfs4file.c | 1 + fs/nfs/nfs4namespace.c | 292 +++--- fs/nfs/nfs4proc.c | 2 +- fs/nfs/nfs4super.c | 257 ++--- fs/nfs/proc.c | 2 +- fs/nfs/super.c | 2217 +++++---------------------------------- include/linux/nfs_xdr.h | 9 +- 19 files changed, 2287 insertions(+), 2470 deletions(-) create mode 100644 fs/nfs/fs_context.c --=20 2.17.2