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@xxxxxxx/T/ [2] https://lore.kernel.org/linux-btrfs/cover.1645157220.git.naohiro.aota@xxxxxxx/T/#e06eecc07ce1cd1e45bfd30a374bd2d15b4fd76d8 [3] https://lore.kernel.org/linux-btrfs/YjMSaLIhKNcKUuHM@xxxxxxxxxxxx/ 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(+) -- 2.35.1