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
next prev 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).