Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c4db335 authored by Jens Axboe's avatar Jens Axboe
Browse files

backing-dev: bdi sb prune should be in the unregister path, not destroy



Commit 592b09a4 was different from
the tested path, in that it moved the bdi super_block prune from
unregister to destroy context. This doesn't fully fix the sync hang
bug on unexpected device removal, as need to prune the bdi cache
pointer before killing flusher thread.

Tested-by: default avatarArtur Skawina <art.08.09@gmail.com>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent 5f04eeb8
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -628,6 +628,8 @@ static void bdi_prune_sb(struct backing_dev_info *bdi)
void bdi_unregister(struct backing_dev_info *bdi)
{
	if (bdi->dev) {
		bdi_prune_sb(bdi);

		if (!bdi_cap_flush_forker(bdi))
			bdi_wb_shutdown(bdi);
		bdi_debug_unregister(bdi);
@@ -697,7 +699,6 @@ void bdi_destroy(struct backing_dev_info *bdi)
		spin_unlock(&inode_lock);
	}

	bdi_prune_sb(bdi);
	bdi_unregister(bdi);

	for (i = 0; i < NR_BDI_STAT_ITEMS; i++)