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

Commit 62f30c54 authored by Miao Xie's avatar Miao Xie Committed by Chris Mason
Browse files

Btrfs: fix deadlock caused by the race between relocation



We can not do flushable reservation for the relocation when we create snapshot,
because it may make the transaction commit task and the flush task wait for
each other and the deadlock happens.

Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 2f120c05
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -882,7 +882,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
	btrfs_reloc_pre_snapshot(trans, pending, &to_reserve);

	if (to_reserve > 0) {
		ret = btrfs_block_rsv_add(root, &pending->block_rsv,
		ret = btrfs_block_rsv_add_noflush(root, &pending->block_rsv,
						  to_reserve);
		if (ret) {
			pending->error = ret;