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

Commit 03679ade authored by Omar Sandoval's avatar Omar Sandoval Committed by Chris Mason
Browse files

Btrfs: remove misleading handling of missing device scrub



scrub_submit() claims that it can handle a bio with a NULL block device,
but this is misleading, as calling bio_add_page() on a bio with a NULL
->bi_bdev would've already crashed. Delete this, as we're about to
properly handle a missing block device.

Signed-off-by: default avatarOmar Sandoval <osandov@fb.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent 293a8489
Loading
Loading
Loading
Loading
+1 −15
Original line number Original line Diff line number Diff line
@@ -2096,22 +2096,8 @@ static void scrub_submit(struct scrub_ctx *sctx)
	sbio = sctx->bios[sctx->curr];
	sbio = sctx->bios[sctx->curr];
	sctx->curr = -1;
	sctx->curr = -1;
	scrub_pending_bio_inc(sctx);
	scrub_pending_bio_inc(sctx);

	if (!sbio->bio->bi_bdev) {
		/*
		 * this case should not happen. If btrfs_map_block() is
		 * wrong, it could happen for dev-replace operations on
		 * missing devices when no mirrors are available, but in
		 * this case it should already fail the mount.
		 * This case is handled correctly (but _very_ slowly).
		 */
		printk_ratelimited(KERN_WARNING
			"BTRFS: scrub_submit(bio bdev == NULL) is unexpected!\n");
		bio_endio(sbio->bio, -EIO);
	} else {
	btrfsic_submit_bio(READ, sbio->bio);
	btrfsic_submit_bio(READ, sbio->bio);
}
}
}


static int scrub_add_page_to_rd_bio(struct scrub_ctx *sctx,
static int scrub_add_page_to_rd_bio(struct scrub_ctx *sctx,
				    struct scrub_page *spage)
				    struct scrub_page *spage)