mbox series

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

Message ID cover.1600282812.git.boris@bur.io (mailing list archive)
Headers show
Series btrfs: free space tree mounting fixes | expand

Message

Boris Burkov Sept. 17, 2020, 6:13 p.m. UTC
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(-)

Comments

David Sterba Sept. 18, 2020, 2:23 p.m. UTC | #1
On Thu, Sep 17, 2020 at 11:13:37AM -0700, Boris Burkov wrote:
> 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

This passed fstests so I'll add it to for-next, there are still some
minor coding style issues to fix but nothing that would affect
functionality.