mbox series

[v5,00/27] nfs: Mount API conversion

Message ID 20191120152750.6880-1-smayhew@redhat.com (mailing list archive)
Headers show
Series nfs: Mount API conversion | expand

Message

Scott Mayhew Nov. 20, 2019, 3:27 p.m. UTC
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

Comments

Scott Mayhew Dec. 6, 2019, 2:39 p.m. UTC | #1
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
>
Schumaker, Anna Dec. 6, 2019, 7:58 p.m. UTC | #2
Hi Scott,

On Fri, 2019-12-06 at 09:39 -0500, Scott Mayhew wrote:
> 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.

I actually just finished going through these! For the most part they looked
fine, but there were a few merge issues with other patches (especially the ones
for minor cleanups like unnecessary semicolons). Can you rebase them on rc1 and
resend? I'll try to get them first on my 5.6 branch.

Thanks,
Anna

> 
> -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
> >