public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Josef Bacik <josef@toxicpanda.com>
To: linux-btrfs@vger.kernel.org, kernel-team@fb.com
Subject: [PATCH v3 00/19] btrfs: convert to the new mount API
Date: Wed, 22 Nov 2023 12:17:36 -0500	[thread overview]
Message-ID: <cover.1700673401.git.josef@toxicpanda.com> (raw)

v2->v3:
- Fixed up the various review comments from Dave and Anand.
- Added a patch to drop the deprecated mount options we currently have.

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 (18):
  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
  btrfs: remove code for inode_cache and recovery mount options

 fs/btrfs/disk-io.c |   85 +-
 fs/btrfs/disk-io.h |    1 -
 fs/btrfs/fs.h      |   15 +-
 fs/btrfs/super.c   | 2357 +++++++++++++++++++++++---------------------
 fs/btrfs/super.h   |    5 +-
 fs/btrfs/zoned.c   |   16 +-
 fs/btrfs/zoned.h   |    6 +-
 fs/namespace.c     |   11 +
 8 files changed, 1263 insertions(+), 1233 deletions(-)

-- 
2.41.0


             reply	other threads:[~2023-11-22 17:18 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-22 17:17 Josef Bacik [this message]
2023-11-22 17:17 ` [PATCH v3 01/19] fs: indicate request originates from old mount api Josef Bacik
2023-11-22 17:17 ` [PATCH v3 02/19] btrfs: split out the mount option validation code into its own helper Josef Bacik
2023-11-22 17:17 ` [PATCH v3 03/19] btrfs: set default compress type at btrfs_init_fs_info time Josef Bacik
2023-11-22 17:17 ` [PATCH v3 04/19] btrfs: move space cache settings into open_ctree Josef Bacik
2023-11-22 17:17 ` [PATCH v3 05/19] btrfs: do not allow free space tree rebuild on extent tree v2 Josef Bacik
2023-11-22 17:17 ` [PATCH v3 06/19] btrfs: split out ro->rw and rw->ro helpers into their own functions Josef Bacik
2023-11-22 17:17 ` [PATCH v3 07/19] btrfs: add a NOSPACECACHE mount option flag Josef Bacik
2023-11-22 17:17 ` [PATCH v3 08/19] btrfs: add fs_parameter definitions Josef Bacik
2023-11-22 17:17 ` [PATCH v3 09/19] btrfs: add parse_param callback for the new mount api Josef Bacik
2023-11-22 17:17 ` [PATCH v3 10/19] btrfs: add fs context handling functions Josef Bacik
2023-11-22 17:17 ` [PATCH v3 11/19] btrfs: add reconfigure callback for fs_context Josef Bacik
2023-11-22 17:17 ` [PATCH v3 12/19] btrfs: add get_tree callback for new mount API Josef Bacik
2023-11-22 17:17 ` [PATCH v3 13/19] btrfs: handle the ro->rw transition for mounting different subovls Josef Bacik
2023-11-22 17:17 ` [PATCH v3 14/19] btrfs: switch to the new mount API Josef Bacik
2023-11-22 17:17 ` [PATCH v3 15/19] btrfs: move the device specific mount options to super.c Josef Bacik
2023-11-22 17:17 ` [PATCH v3 16/19] btrfs: remove old mount API code Josef Bacik
2023-11-22 17:17 ` [PATCH v3 17/19] btrfs: move one shot mount option clearing to super.c Josef Bacik
2023-11-22 17:17 ` [PATCH v3 18/19] btrfs: set clear_cache if we use usebackuproot Josef Bacik
2023-11-22 17:17 ` [PATCH v3 19/19] btrfs: remove code for inode_cache and recovery mount options Josef Bacik
2023-11-22 17:41 ` [PATCH v3 00/19] btrfs: convert to the new mount API Neal Gompa
2023-11-22 18:29   ` David Sterba
2023-11-22 22:12     ` Neal Gompa
2023-11-22 22:55       ` David Sterba
2023-11-27 15:52         ` Josef Bacik
2023-11-28 21:15 ` David Sterba
2023-11-29 12:59   ` Anand Jain
2023-11-29 15:50     ` David Sterba

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=cover.1700673401.git.josef@toxicpanda.com \
    --to=josef@toxicpanda.com \
    --cc=kernel-team@fb.com \
    --cc=linux-btrfs@vger.kernel.org \
    /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