mbox series

[v4,0/3] protect relocation with sb_start_write

Message ID cover.1648535838.git.naohiro.aota@wdc.com (mailing list archive)
Headers show
Series protect relocation with sb_start_write | expand

Message

Naohiro Aota March 29, 2022, 6:55 a.m. UTC
This series is a follow-up to the series below [1]. The old series added
an assertion to btrfs_relocate_chunk() to check if it is protected
with sb_start_write(). However, it revealed another location we need
to add sb_start_write() [2].

Also, this series moved the ASSERT from btrfs_relocate_chunk() to
btrfs_relocate_block_group() because we do not need to call
sb_start_write() on a non-data block group [3].

[1] https://lore.kernel.org/linux-btrfs/cover.1645157220.git.naohiro.aota@wdc.com/T/

[2] https://lore.kernel.org/linux-btrfs/cover.1645157220.git.naohiro.aota@wdc.com/T/#e06eecc07ce1cd1e45bfd30a374bd2d15b4fd76d8

[3] https://lore.kernel.org/linux-btrfs/YjMSaLIhKNcKUuHM@debian9.Home/

Patch 1 adds sb_{start,end}_write() to the resumed async balancing.

Patches 2 and 3 add an ASSERT to catch a future error.

--
v4:
  - Fix subject of patch 2 (Filipe)
  - Revise the comment for the ASSERT (Filipe)
v3:
  - Only add sb_write_started(), which we really use. (Dave Chinner)
  - Drop patch "btrfs: mark device addition as mnt_want_write_file" (Filipe Manana)
  - Narrow asserting region to btrfs_relocate_block_group() and check only
    when the BG is data BG. (Filipe Manana)
v2:
  - Use mnt_want_write_file() instead of sb_start_write() for
    btrfs_ioctl_add_dev()
  - Drop bogus fixes tag
  - Change the stable target to meaningful 4.9+

Naohiro Aota (3):
  btrfs: mark resumed async balance as writing
  fs: add a check function for sb_start_write()
  btrfs: assert that relocation is protected with sb_start_write()

 fs/btrfs/relocation.c | 10 ++++++++++
 fs/btrfs/volumes.c    |  2 ++
 include/linux/fs.h    |  5 +++++
 3 files changed, 17 insertions(+)

Comments

David Sterba March 30, 2022, 2:19 p.m. UTC | #1
On Tue, Mar 29, 2022 at 03:55:57PM +0900, Naohiro Aota wrote:
> This series is a follow-up to the series below [1]. The old series added
> an assertion to btrfs_relocate_chunk() to check if it is protected
> with sb_start_write(). However, it revealed another location we need
> to add sb_start_write() [2].
> 
> Also, this series moved the ASSERT from btrfs_relocate_chunk() to
> btrfs_relocate_block_group() because we do not need to call
> sb_start_write() on a non-data block group [3].
> 
> [1] https://lore.kernel.org/linux-btrfs/cover.1645157220.git.naohiro.aota@wdc.com/T/
> 
> [2] https://lore.kernel.org/linux-btrfs/cover.1645157220.git.naohiro.aota@wdc.com/T/#e06eecc07ce1cd1e45bfd30a374bd2d15b4fd76d8
> 
> [3] https://lore.kernel.org/linux-btrfs/YjMSaLIhKNcKUuHM@debian9.Home/
> 
> Patch 1 adds sb_{start,end}_write() to the resumed async balancing.
> 
> Patches 2 and 3 add an ASSERT to catch a future error.
> 
> --
> v4:
>   - Fix subject of patch 2 (Filipe)
>   - Revise the comment for the ASSERT (Filipe)
> v3:
>   - Only add sb_write_started(), which we really use. (Dave Chinner)
>   - Drop patch "btrfs: mark device addition as mnt_want_write_file" (Filipe Manana)
>   - Narrow asserting region to btrfs_relocate_block_group() and check only
>     when the BG is data BG. (Filipe Manana)
> v2:
>   - Use mnt_want_write_file() instead of sb_start_write() for
>     btrfs_ioctl_add_dev()
>   - Drop bogus fixes tag
>   - Change the stable target to meaningful 4.9+
> 
> Naohiro Aota (3):
>   btrfs: mark resumed async balance as writing
>   fs: add a check function for sb_start_write()
>   btrfs: assert that relocation is protected with sb_start_write()

Added to misc-next, with the comment of 3/3 updated according to
Filipe's suggestion. Thanks.