Re: [PATCH v2 00/18] btrfs: convert to the new mount API

Neal Gompa
2023-11-08T23:02:42Z

On Wed, Nov 8, 2023 at 2:09 PM Josef Bacik <josef@toxicpanda.com> wrote:
>
> v1->v2:
> - Fixed up some nits and paste errors.
> - Fixed build failure with !ZONED.
> - Fixed accidentally dropping BINARY_MOUNTDATA flag.
> - Added Reviewed-by's collected up to this point.
>
> These have run through our CI a few times, they haven't introduced any
> regressions.
>
> --- Original email ---
> Hello,
>
> These patches convert us to use the new mount API. Christian tried to do this a
> few months ago, but ran afoul of our preference to have a bunch of small
> changes. I started this series before I knew he had tried to convert us, so
> there's a fair bit that's different, but I did copy his approach for the remount
> bit. I've linked to the original patch where I took inspiration, Christian let
> me know if you want some other annotation for credit, I wasn't really sure the
> best way to do that.
>
> There are a few preparatory patches in the beginning, and then cleanups at the
> end. I took each call back one at a time to try and make it as small as
> possible. The resulting code is less, but the diffstat shows more insertions
> that deletions. This is because there are some big comment blocks around some
> of the more subtle things that we're doing to hopefully make it more clear.
>
> This is currently running through our CI. I thought it was fine last week but
> we had a bunch of new failures when I finished up the remount behavior. However
> today I discovered this was a regression in btrfs-progs, and I'm re-running the
> tests with the fixes. If anything major breaks in the CI I'll resend with
> fixes, but I'm pretty sure these patches will pass without issue.
>
> I utilized __maybe_unused liberally to make sure everything compiled while
> applied. The only "big" patch is where I went and removed the old API. If
> requested I can break that up a bit more, but I didn't think it was necessary.
> I did make sure to keep it in its own patch, so the switch to the new mount API
> path only has things we need to support the new mount API, and then the next
> patch removes the old code. Thanks,
>
> Josef
>
> Christian Brauner (1):
> fs: indicate request originates from old mount api
>
> Josef Bacik (17):
> btrfs: split out the mount option validation code into its own helper
> btrfs: set default compress type at btrfs_init_fs_info time
> btrfs: move space cache settings into open_ctree
> btrfs: do not allow free space tree rebuild on extent tree v2
> btrfs: split out ro->rw and rw->ro helpers into their own functions
> btrfs: add a NOSPACECACHE mount option flag
> btrfs: add fs_parameter definitions
> btrfs: add parse_param callback for the new mount api
> btrfs: add fs context handling functions
> btrfs: add reconfigure callback for fs_context
> btrfs: add get_tree callback for new mount API
> btrfs: handle the ro->rw transition for mounting different subovls
> btrfs: switch to the new mount API
> btrfs: move the device specific mount options to super.c
> btrfs: remove old mount API code
> btrfs: move one shot mount option clearing to super.c
> btrfs: set clear_cache if we use usebackuproot
>
> fs/btrfs/disk-io.c | 76 +-
> fs/btrfs/disk-io.h | 1 -
> fs/btrfs/fs.h | 15 +-
> fs/btrfs/super.c | 2421 +++++++++++++++++++++++---------------------
> fs/btrfs/super.h | 5 +-
> fs/btrfs/zoned.c | 16 +-
> fs/btrfs/zoned.h | 6 +-
> fs/namespace.c | 11 +
> 8 files changed, 1317 insertions(+), 1234 deletions(-)
>
> --
> 2.41.0
>

The series looks reasonable to me. I do appreciate the extra effort in
the documents and references to give me context when looking through
it all.

Reviewed-by: Neal Gompa <neal@gompa.dev>

--
真実はいつも一つ！/ Always, there's only one truth!