linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: Ian Kent <raven@themaw.net>
Cc: linux-xfs <linux-xfs@vger.kernel.org>,
	Eric Sandeen <sandeen@sandeen.net>,
	David Howells <dhowells@redhat.com>,
	Dave Chinner <dchinner@redhat.com>,
	Al Viro <viro@zeniv.linux.org.uk>
Subject: Re: [PATCH v4 00/17] xfs: mount API patch series
Date: Mon, 7 Oct 2019 07:52:46 -0400	[thread overview]
Message-ID: <20191007115246.GF22140@bfoster> (raw)
In-Reply-To: <157009817203.13858.7783767645177567968.stgit@fedora-28>

On Thu, Oct 03, 2019 at 06:25:18PM +0800, Ian Kent wrote:
> This patch series add support to xfs for the new kernel mount API
> as described in the LWN article at https://lwn.net/Articles/780267/.
> 
> In the article there's a lengthy description of the reasons for
> adopting the API and problems expected to be resolved by using it.
> 
> The series has been applied to the repository located at
> git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git, and built and
> some simple tests run on it along with the generic xfstests.
> 

I'm not sure that we have any focused mount option testing in fstests.
It looks like we have various remount tests and such to cover corner
cases and/or specific bugs, but nothing to make sure various options
continue to work or otherwise fail gracefully. Do you have any plans to
add such a test to help verify this work?

Brian

> Other things that continue to cause me concern:
> 
> - Message logging.
>   There is error logging done in the VFS by the mount-api code, some
>   is VFS specific while some is file system specific. This can lead
>   to duplicated and sometimes inconsistent logging.
> 
>   The mount-api feature of saving error message text to the mount
>   context for later retrieval by fsopen()/fsconfig()/fsmount() users
>   is the reason the mount-api log macros are present. But, at the
>   moment (last time I looked), these macros will either log the
>   error message or save it to the mount context. There's not yet
>   a way to modify this behaviour so it which can lead to messages,
>   possibly needed for debug purposes, not being sent to the kernel
>   log. There's also the pr_xxx() log functions (not a problem for
>   xfs AFAICS) that aren't aware of the mount context at all.
> 
>   In the xfs patches I've used the same method that is used in
>   gfs2 and was suggested by Al Viro (essentially return the error
>   if fs_parse() returns one) except that I've also not used the
>   mount api log macros to minimise the possibility of lost log
>   messages.
> 
>   This isn't the best so follow up patches for RFC (with a
>   slightly wider audience) will be needed to try and improve
>   this aspect of the mount api.
> 
> Changes for v4:
> - changed xfs_fill_super() cleanup back to what it was in v2, until
>   I can work out what's causing the problem had previously seen (I can't
>   reproduce it myself), since it looks like it was right from the start.
> - use get_tree_bdev() instead of vfs_get_block_super() in xfs_get_tree()
>   as requested by Al Viro.
> - removed redundant initialisation in xfs_fs_fill_super().
> - fix long line in xfs_validate_params().
> - no need to validate if parameter parsing fails, just return the error.
> - summarise reconfigure comment about option handling, transfer bulk
>   of comment to commit log message.
> - use minimal change in xfs_parse_param(), deffer discussion of mount
>   api logging improvements until later and with a wider audience.
> 
> Changes for v3:
> - fix struct xfs_fs_context initialisation in xfs_parseargs().
> - move call to xfs_validate_params() below label "done".
> - if allocation of xfs_mount fails return ENOMEM immediately.
> - remove erroneous kfree(mp) in xfs_fill_super().
> - move the removal of xfs_fs_remount() and xfs_test_remount_options()
>   to the switch to mount api patch.
> - retain original usage of distinct <option>, no<option> usage.
> - fix line length and a white space problem in xfs_parseargs().
> - defer introduction of struct fs_context_operations until mount
>   api implementation.
> - don't use a new line for the void parameter of xfs_mount_alloc().
> - check for -ENOPARAM in xfs_parse_param() to report invalid options
>   using the options switch (to avoid double entry log messages).
> - remove obsolete mount option biosize.
> - try and make comment in xfs_fc_free() more understandable.
> 
> Changes for v2:
> - changed .name to uppercase in fs_parameter_description to ensure
>   consistent error log messages between the vfs parser and the xfs
>   parameter parser.
> - clarify comment above xfs_parse_param() about when possibly
>   allocated mp->m_logname or mp->m_rtname are freed.
> - factor out xfs_remount_rw() and xfs_remount_ro() from  xfs_remount().
> - changed xfs_mount_alloc() to not set super block in xfs_mount so it
>   can be re-used when switching to the mount-api.
> - fixed don't check for NULL when calling kfree() in xfs_fc_free().
> - refactored xfs_parseargs() in an attempt to highlight the code
>   that actually changes in converting to use the new mount api.
> - dropped xfs-mount-api-rename-xfs_fill_super.patch, it didn't seem
>   necessary.
> - move comment about remount difficulties above xfs_reconfigure()
>   and increase line length to try and make the comment manageable.
> 
> Al Viro has sent a pull request to Linus for the patch containing
> get_tree_bdev() recently and I think there's a small problem with
> that patch too so there will be conflicts with merging this series
> without dropping the first two patches of the series.
> 
> ---
> 
> David Howells (1):
>       vfs: Create fs_context-aware mount_bdev() replacement
> 
> Ian Kent (16):
>       vfs: add missing blkdev_put() in get_tree_bdev()
>       xfs: remove very old mount option
>       xfs: mount-api - add fs parameter description
>       xfs: mount-api - refactor suffix_kstrtoint()
>       xfs: mount-api - refactor xfs_parseags()
>       xfs: mount-api - make xfs_parse_param() take context .parse_param() args
>       xfs: mount-api - move xfs_parseargs() validation to a helper
>       xfs: mount-api - refactor xfs_fs_fill_super()
>       xfs: mount-api - add xfs_get_tree()
>       xfs: mount-api - add xfs_remount_rw() helper
>       xfs: mount-api - add xfs_remount_ro() helper
>       xfs: mount api - add xfs_reconfigure()
>       xfs: mount-api - add xfs_fc_free()
>       xfs: mount-api - dont set sb in xfs_mount_alloc()
>       xfs: mount-api - switch to new mount-api
>       xfs: mount-api - remove remaining legacy mount code
> 
> 
>  fs/super.c                 |   97 +++++
>  fs/xfs/xfs_super.c         |  939 +++++++++++++++++++++++---------------------
>  include/linux/fs_context.h |    5 
>  3 files changed, 600 insertions(+), 441 deletions(-)
> 
> --
> Ian

  parent reply	other threads:[~2019-10-07 11:52 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-03 10:25 [PATCH v4 00/17] xfs: mount API patch series Ian Kent
2019-10-03 10:25 ` [PATCH v4 01/17] vfs: Create fs_context-aware mount_bdev() replacement Ian Kent
2019-10-03 10:25 ` [PATCH v4 02/17] vfs: add missing blkdev_put() in get_tree_bdev() Ian Kent
2019-10-03 14:56   ` Darrick J. Wong
2019-10-04  6:49     ` Ian Kent
2019-10-04  6:59       ` Ian Kent
2019-10-04 12:25         ` Al Viro
2019-10-03 10:25 ` [PATCH v4 03/17] xfs: remove very old mount option Ian Kent
2019-10-03 10:25 ` [PATCH v4 04/17] xfs: mount-api - add fs parameter description Ian Kent
2019-10-03 10:25 ` [PATCH v4 05/17] xfs: mount-api - refactor suffix_kstrtoint() Ian Kent
2019-10-03 10:25 ` [PATCH v4 06/17] xfs: mount-api - refactor xfs_parseags() Ian Kent
2019-10-03 10:25 ` [PATCH v4 07/17] xfs: mount-api - make xfs_parse_param() take context .parse_param() args Ian Kent
2019-10-04 15:51   ` Brian Foster
2019-10-03 10:26 ` [PATCH v4 08/17] xfs: mount-api - move xfs_parseargs() validation to a helper Ian Kent
2019-10-04 15:51   ` Brian Foster
2019-10-03 10:26 ` [PATCH v4 09/17] xfs: mount-api - refactor xfs_fs_fill_super() Ian Kent
2019-10-03 10:26 ` [PATCH v4 10/17] xfs: mount-api - add xfs_get_tree() Ian Kent
2019-10-04 15:52   ` Brian Foster
2019-10-04 22:56     ` Ian Kent
2019-10-03 10:26 ` [PATCH v4 11/17] xfs: mount-api - add xfs_remount_rw() helper Ian Kent
2019-10-03 10:26 ` [PATCH v4 12/17] xfs: mount-api - add xfs_remount_ro() helper Ian Kent
2019-10-03 10:26 ` [PATCH v4 13/17] xfs: mount api - add xfs_reconfigure() Ian Kent
2019-10-04 15:53   ` Brian Foster
2019-10-04 23:16     ` Ian Kent
2019-10-07 11:51       ` Brian Foster
2019-10-08  0:32         ` Ian Kent
2019-10-03 10:26 ` [PATCH v4 14/17] xfs: mount-api - add xfs_fc_free() Ian Kent
2019-10-07 11:51   ` Brian Foster
2019-10-08  0:35     ` Ian Kent
2019-10-03 10:26 ` [PATCH v4 15/17] xfs: mount-api - dont set sb in xfs_mount_alloc() Ian Kent
2019-10-07 11:52   ` Brian Foster
2019-10-03 10:26 ` [PATCH v4 16/17] xfs: mount-api - switch to new mount-api Ian Kent
2019-10-07 11:52   ` Brian Foster
2019-10-03 10:26 ` [PATCH v4 17/17] xfs: mount-api - remove remaining legacy mount code Ian Kent
2019-10-07 11:52   ` Brian Foster
2019-10-03 23:30 ` [PATCH v4 00/17] xfs: mount API patch series Eric Sandeen
2019-10-04  6:57   ` Ian Kent
2019-10-04  8:25     ` Ian Kent
2019-10-04  8:54       ` Ian Kent
2019-10-04 13:19       ` Eric Sandeen
2019-10-07 11:52 ` Brian Foster [this message]
2019-10-08  0:13   ` Ian Kent
2019-10-08  0:35     ` Darrick J. Wong
2019-10-08  1:20       ` Ian Kent
2019-10-08  1:35         ` Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191007115246.GF22140@bfoster \
    --to=bfoster@redhat.com \
    --cc=dchinner@redhat.com \
    --cc=dhowells@redhat.com \
    --cc=linux-xfs@vger.kernel.org \
    --cc=raven@themaw.net \
    --cc=sandeen@sandeen.net \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).