]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commit
xfs_repair: continue after xfs_bunmapi deadlock avoidance
authorEric Sandeen <sandeen@redhat.com>
Tue, 30 Oct 2018 21:51:57 +0000 (16:51 -0500)
committerEric Sandeen <sandeen@redhat.com>
Tue, 30 Oct 2018 21:51:57 +0000 (16:51 -0500)
commitea7be34260bf22f21bd7e430aad894093c7bdec2
tree78e8683365beeaa093ca21c46653b6c7e7dc3bc6
parent1624c340a53012b4afd1194d990890c140e3fb66
xfs_repair: continue after xfs_bunmapi deadlock avoidance

xfs_bunmapi can legitimately return before all work is done, to
avoid deadlocks across AGs.

Sadly nobody told xfs_repair, so it fires an assert if this happens:

 phase6.c:1410: longform_dir2_rebuild: Assertion `done' failed.

Fix this by calling back in until all work is done, as we do
in the kernel.

Fixes: 5a8bcc ("xfs: fix multi-AG deadlock in xfs_bunmapi")
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1641116
Reported-by: Tomasz Torcz <tomek@pipebreaker.pl>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
repair/phase6.c