Commit 0587e970 authored by Dariusz Stojaczyk's avatar Dariusz Stojaczyk Committed by Daniel Verkamp
Browse files

bdev/gpt: fix gpt scan for block sizes > 32KB



32KB spdk_bdev_read was failing straight away
on bdevs with block size bigger than that.

Change-Id: I83efe4284a3b82b83db0f678abb134c5daa36a84
Signed-off-by: default avatarDariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/383499


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent d08a33f5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@

struct spdk_gpt {
	unsigned char *buf;
	uint64_t buf_size;
	uint64_t lba_start;
	uint64_t lba_end;
	uint64_t total_sectors;
+3 −2
Original line number Diff line number Diff line
@@ -132,7 +132,8 @@ spdk_gpt_base_bdev_init(struct spdk_bdev *bdev)
	}

	gpt = &gpt_base->gpt;
	gpt->buf = spdk_dma_zmalloc(SPDK_GPT_BUFFER_SIZE, 0x1000, NULL);
	gpt->buf_size = spdk_max(SPDK_GPT_BUFFER_SIZE, bdev->blocklen);
	gpt->buf = spdk_dma_zmalloc(gpt->buf_size, 0x1000, NULL);
	if (!gpt->buf) {
		SPDK_ERRLOG("Cannot alloc buf\n");
		spdk_bdev_part_base_free(&gpt_base->part_base);
@@ -342,7 +343,7 @@ vbdev_gpt_read_gpt(struct spdk_bdev *bdev)
	}

	rc = spdk_bdev_read(gpt_base->part_base.desc, gpt_base->ch, gpt_base->gpt.buf, 0,
			    SPDK_GPT_BUFFER_SIZE, spdk_gpt_bdev_complete, gpt_base);
			    gpt_base->gpt.buf_size, spdk_gpt_bdev_complete, gpt_base);
	if (rc < 0) {
		spdk_put_io_channel(gpt_base->ch);
		spdk_bdev_part_base_free(&gpt_base->part_base);