Commit 7e0a0847 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Jens Axboe
Browse files

lightnvm: pblk: Switch to use new generic UUID API



There are new types and helpers that are supposed to be used in new code.

As a preparation to get rid of legacy types and API functions do
the conversion here.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: default avatarJavier González <javier@javigon.com>
Signed-off-by: default avatarMatias Bjørling <mb@lightnvm.io>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent e74ecf63
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1065,7 +1065,7 @@ static int pblk_line_init_metadata(struct pblk *pblk, struct pblk_line *line,
	bitmap_set(line->lun_bitmap, 0, lm->lun_bitmap_len);

	smeta_buf->header.identifier = cpu_to_le32(PBLK_MAGIC);
	memcpy(smeta_buf->header.uuid, pblk->instance_uuid, 16);
	guid_copy((guid_t *)&smeta_buf->header.uuid, &pblk->instance_uuid);
	smeta_buf->header.id = cpu_to_le32(line->id);
	smeta_buf->header.type = cpu_to_le16(line->type);
	smeta_buf->header.version_major = SMETA_VERSION_MAJOR;
@@ -1874,7 +1874,8 @@ void pblk_line_close_meta(struct pblk *pblk, struct pblk_line *line)

	if (le32_to_cpu(emeta_buf->header.identifier) != PBLK_MAGIC) {
		emeta_buf->header.identifier = cpu_to_le32(PBLK_MAGIC);
		memcpy(emeta_buf->header.uuid, pblk->instance_uuid, 16);
		guid_copy((guid_t *)&emeta_buf->header.uuid,
							&pblk->instance_uuid);
		emeta_buf->header.id = cpu_to_le32(line->id);
		emeta_buf->header.type = cpu_to_le16(line->type);
		emeta_buf->header.version_major = EMETA_VERSION_MAJOR;
+1 −1
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ static int pblk_l2p_recover(struct pblk *pblk, bool factory_init)
	struct pblk_line *line = NULL;

	if (factory_init) {
		pblk_setup_uuid(pblk);
		guid_gen(&pblk->instance_uuid);
	} else {
		line = pblk_recov_l2p(pblk);
		if (IS_ERR(line)) {
+5 −3
Original line number Diff line number Diff line
@@ -703,11 +703,13 @@ struct pblk_line *pblk_recov_l2p(struct pblk *pblk)

		/* The first valid instance uuid is used for initialization */
		if (!valid_uuid) {
			memcpy(pblk->instance_uuid, smeta_buf->header.uuid, 16);
			guid_copy(&pblk->instance_uuid,
				  (guid_t *)&smeta_buf->header.uuid);
			valid_uuid = 1;
		}

		if (memcmp(pblk->instance_uuid, smeta_buf->header.uuid, 16)) {
		if (!guid_equal(&pblk->instance_uuid,
				(guid_t *)&smeta_buf->header.uuid)) {
			pblk_debug(pblk, "ignore line %u due to uuid mismatch\n",
					i);
			continue;
@@ -737,7 +739,7 @@ struct pblk_line *pblk_recov_l2p(struct pblk *pblk)
	}

	if (!found_lines) {
		pblk_setup_uuid(pblk);
		guid_gen(&pblk->instance_uuid);

		spin_lock(&l_mg->free_lock);
		WARN_ON_ONCE(!test_and_clear_bit(meta_line,
+1 −9
Original line number Diff line number Diff line
@@ -646,7 +646,7 @@ struct pblk {

	int sec_per_write;

	unsigned char instance_uuid[16];
	guid_t instance_uuid;

	/* Persistent write amplification counters, 4kb sector I/Os */
	atomic64_t user_wa;		/* Sectors written by user */
@@ -1360,14 +1360,6 @@ static inline unsigned int pblk_get_secs(struct bio *bio)
	return  bio->bi_iter.bi_size / PBLK_EXPOSED_PAGE_SIZE;
}

static inline void pblk_setup_uuid(struct pblk *pblk)
{
	uuid_le uuid;

	uuid_le_gen(&uuid);
	memcpy(pblk->instance_uuid, uuid.b, 16);
}

static inline char *pblk_disk_name(struct pblk *pblk)
{
	struct gendisk *disk = pblk->disk;