xfs: check for shutdown before going to sleep in xfs_select_zone
Ensure the file system hasn't been shut down before waiting for a free
zone to become available, because that won't happen on a shut down
file system. Without this processes can occasionally get stuck in
the allocator wait loop when racing with a file system shutdown.
This sporadically happens when running generic/388 or generic/475.
Fixes: 4e4d520755 ("xfs: add the zoned space allocator")
Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hans Holmberg <hans.holmberg@wdc.com>
Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
committed by
Carlos Maiolino
parent
e04c78d86a
commit
b0f77d301e
@@ -727,7 +727,7 @@ xfs_select_zone(
|
||||
for (;;) {
|
||||
prepare_to_wait(&zi->zi_zone_wait, &wait, TASK_UNINTERRUPTIBLE);
|
||||
oz = xfs_select_zone_nowait(mp, write_hint, pack_tight);
|
||||
if (oz)
|
||||
if (oz || xfs_is_shutdown(mp))
|
||||
break;
|
||||
schedule();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user