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

Commit 6fa96d72 authored by Zhao Lei's avatar Zhao Lei Committed by Chris Mason
Browse files

btrfs: Free checksum list on scrub_extent() fail



When scrub_extent() failed, we need to free previois created
checksum list.

Signed-off-by: default avatarZhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent f2f66a2f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -2924,10 +2924,12 @@ static noinline_for_stack int scrub_raid56_parity(struct scrub_ctx *sctx,
						      extent_dev, flags,
						      generation,
						      extent_mirror_num);

			scrub_free_csums(sctx);

			if (ret)
				goto out;

			scrub_free_csums(sctx);
			if (extent_logical + extent_len <
			    key.objectid + bytes) {
				logic_start += map->stripe_len;
@@ -3262,10 +3264,12 @@ static noinline_for_stack int scrub_stripe(struct scrub_ctx *sctx,
					   extent_physical, extent_dev, flags,
					   generation, extent_mirror_num,
					   extent_logical - logical + physical);

			scrub_free_csums(sctx);

			if (ret)
				goto out;

			scrub_free_csums(sctx);
			if (extent_logical + extent_len <
			    key.objectid + bytes) {
				if (map->type & BTRFS_BLOCK_GROUP_RAID56_MASK) {