[PATCH v3 0/4] btrfs: free space tree mounting fixes

Boris Burkov
2020-09-17T18:35:22Z

A few fixes for issues with mounting the btrfs free space tree
(aka space_cache v2). These are not dependent, and are only related
loosely, in that they all apply to mounting the file system with
the free space tree.

The first patch fixes -o remount,space_cache=v2.

The second patch fixes /proc/mounts with regards to the space_cache
options (space_cache, space_cache=v2, nospace_cache)

The third patch fixes the slight oversight of not cleaning up the
space cache free space object or free space inodes when migrating to
the free space tree.

The fourth patch stops re-creating the free space objects when we
are not using space_cache=v1.

changes for v3:
Patch 1/4: Change failure to warning logging.
Patch 2/4: New; fixes mount option printing.
Patch 3/4: Fix orphan inode vs. delayed iput bug, change remove function
to take inode as a sink.
Patch 4/4: No changes.

changes for v2:
Patch 1/3: made remount _only_ work in ro->rw case, added comment.
Patch 2/3: added btrfs_ prefix to non-static function, removed bad
whitespace.

Boris Burkov (4):
btrfs: support remount of ro fs with free space tree
btrfs: use sb state to print space_cache mount option
btrfs: remove free space items when creating free space tree
btrfs: skip space_cache v1 setup when not using it

fs/btrfs/block-group.c | 42 +++-----------------
fs/btrfs/disk-io.c | 20 ++++++++++
fs/btrfs/free-space-cache.c | 78 +++++++++++++++++++++++++++++++++++++
fs/btrfs/free-space-cache.h | 5 +++
fs/btrfs/free-space-tree.c | 3 ++
fs/btrfs/super.c | 42 +++++++++++++++++---
fs/btrfs/transaction.c | 2 +
7 files changed, 150 insertions(+), 42 deletions(-)

--
2.24.1