On Wed, Nov 8, 2023 at 2:09 PM Josef Bacik <josef@xxxxxxxxxxxxxx> 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@xxxxxxxxx> -- 真実はいつも一つ!/ Always, there's only one truth!