mbox series

[v2,00/11] btrfs: fixes around swap file activation and cleanups

Message ID cover.1733929327.git.fdmanana@suse.com (mailing list archive)
Headers show
Series btrfs: fixes around swap file activation and cleanups | expand

Message

Filipe Manana Dec. 11, 2024, 3:04 p.m. UTC
From: Filipe Manana <fdmanana@suse.com>

There are a couple issues with swap file activation, one being races with
memory mapped writes, while the other one is a failure due to buggy
detection of extent sharedness - we can often consider an extent as shared
when it is not but it used to be. The rest are just some cleanups or
enhancements.

V2: Updated patch 10/11, it mentioned a no longer existing argument that
    removed in patch 05/11, the patches were re-ordered at some point.

Filipe Manana (11):
  btrfs: fix race with memory mapped writes when activating swap file
  btrfs: fix swap file activation failure due to extents that used to be shared
  btrfs: allow swap activation to be interruptible
  btrfs: avoid monopolizing a core when activating a swap file
  btrfs: remove no longer needed strict argument from can_nocow_extent()
  btrfs: remove the snapshot check from check_committed_ref()
  btrfs: avoid redundant call to get inline ref type at check_committed_ref()
  btrfs: simplify return logic at check_committed_ref()
  btrfs: simplify arguments for btrfs_cross_ref_exist()
  btrfs: add function comment for check_committed_ref()
  btrfs: add assertions and comment about path expectations to btrfs_cross_ref_exist()

 fs/btrfs/btrfs_inode.h |   2 +-
 fs/btrfs/direct-io.c   |   3 +-
 fs/btrfs/extent-tree.c | 128 +++++++++++++++++++++++++-----------
 fs/btrfs/extent-tree.h |   3 +-
 fs/btrfs/file.c        |   2 +-
 fs/btrfs/inode.c       | 146 +++++++++++++++++++++++++++++------------
 fs/btrfs/locking.h     |   5 ++
 7 files changed, 203 insertions(+), 86 deletions(-)

Comments

Qu Wenruo Dec. 13, 2024, 9:07 p.m. UTC | #1
在 2024/12/12 01:34, fdmanana@kernel.org 写道:
> From: Filipe Manana <fdmanana@suse.com>
>
> There are a couple issues with swap file activation, one being races with
> memory mapped writes, while the other one is a failure due to buggy
> detection of extent sharedness - we can often consider an extent as shared
> when it is not but it used to be. The rest are just some cleanups or
> enhancements.
>
> V2: Updated patch 10/11, it mentioned a no longer existing argument that
>      removed in patch 05/11, the patches were re-ordered at some point.

Reviewed-by: Qu Wenruo <wqu@suse.com>

>
> Filipe Manana (11):
>    btrfs: fix race with memory mapped writes when activating swap file
>    btrfs: fix swap file activation failure due to extents that used to be shared
>    btrfs: allow swap activation to be interruptible
>    btrfs: avoid monopolizing a core when activating a swap file
>    btrfs: remove no longer needed strict argument from can_nocow_extent()

Very happy we can get rid of one of the double bool parameters.

Everything I see something like func(x, y, true, false); it almost
drives me crazy.

Thanks,
Qu
>    btrfs: remove the snapshot check from check_committed_ref()
>    btrfs: avoid redundant call to get inline ref type at check_committed_ref()
>    btrfs: simplify return logic at check_committed_ref()
>    btrfs: simplify arguments for btrfs_cross_ref_exist()
>    btrfs: add function comment for check_committed_ref()
>    btrfs: add assertions and comment about path expectations to btrfs_cross_ref_exist()
>
>   fs/btrfs/btrfs_inode.h |   2 +-
>   fs/btrfs/direct-io.c   |   3 +-
>   fs/btrfs/extent-tree.c | 128 +++++++++++++++++++++++++-----------
>   fs/btrfs/extent-tree.h |   3 +-
>   fs/btrfs/file.c        |   2 +-
>   fs/btrfs/inode.c       | 146 +++++++++++++++++++++++++++++------------
>   fs/btrfs/locking.h     |   5 ++
>   7 files changed, 203 insertions(+), 86 deletions(-)
>