Hi Anna, Trond, Have you had a chance to look at these? Do you have any comments? I do have a small fix to make to nfs4_validate_fspath() for an issue that Dan Carpenter reported, but I was waiting to see if there was anything else. -Scott On Wed, 20 Nov 2019, Scott Mayhew wrote: > Hi Trond, Anna, > > 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 5.4-rc8. > > 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= 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 | 144 ++- > 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/nfs4namespace.c | 291 ++--- > fs/nfs/nfs4proc.c | 2 +- > fs/nfs/nfs4super.c | 257 ++--- > fs/nfs/proc.c | 2 +- > fs/nfs/super.c | 2219 +++++---------------------------------- > include/linux/nfs_xdr.h | 9 +- > 18 files changed, 2283 insertions(+), 2472 deletions(-) > create mode 100644 fs/nfs/fs_context.c > > -- > 2.17.2 >