Message ID | cover.1644469146.git.naohiro.aota@wdc.com (mailing list archive) |
---|---|
Headers | show |
Series | btrfs: zoned: mark relocation as writing | expand |
On 10/02/2022 06:59, Naohiro Aota wrote: > There is a hung_task issue with running generic/068 on an SMR > device. The hang occurs while a process is trying to thaw the > filesystem. The process is trying to take sb->s_umount to thaw the > FS. The lock is held by fsstress, which calls btrfs_sync_fs() and is > waiting for an ordered extent to finish. However, as the FS is frozen, > the ordered extent never finish. > > Having an ordered extent while the FS is frozen is the root cause of > the hang. The ordered extent is initiated from btrfs_relocate_chunk() > which is called from btrfs_reclaim_bgs_work(). > > The first patch is a preparation patch to add asserting functions to > check if sb_start_{write,pagefault,intwrite} is called. > > The second patch adds sb_{start,end}_write and the assert function at > proper places. > > Changelog: > v2: > - Implement asserting functions not to directly touch the internal > implementation > > Naohiro Aota (2): > fs: add asserting functions for sb_start_{write,pagefault,intwrite} > btrfs: zoned: mark relocation as writing > > fs/btrfs/block-group.c | 8 +++++++- > fs/btrfs/volumes.c | 6 ++++++ > include/linux/fs.h | 20 ++++++++++++++++++++ > 3 files changed, 33 insertions(+), 1 deletion(-) > For the series: Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
On Thu, Feb 10, 2022 at 02:59:03PM +0900, Naohiro Aota wrote: > There is a hung_task issue with running generic/068 on an SMR > device. The hang occurs while a process is trying to thaw the > filesystem. The process is trying to take sb->s_umount to thaw the > FS. The lock is held by fsstress, which calls btrfs_sync_fs() and is > waiting for an ordered extent to finish. However, as the FS is frozen, > the ordered extent never finish. > > Having an ordered extent while the FS is frozen is the root cause of > the hang. The ordered extent is initiated from btrfs_relocate_chunk() > which is called from btrfs_reclaim_bgs_work(). > > The first patch is a preparation patch to add asserting functions to > check if sb_start_{write,pagefault,intwrite} is called. > > The second patch adds sb_{start,end}_write and the assert function at > proper places. > > Changelog: > v2: > - Implement asserting functions not to directly touch the internal > implementation > > Naohiro Aota (2): > fs: add asserting functions for sb_start_{write,pagefault,intwrite} > btrfs: zoned: mark relocation as writing Added as topic branch to for-next. I'd appreciate acks for the sb_start_* helpers before the patches go to to Linus' tree.