diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2019-02-11 07:25:05 -0500 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-02-11 10:18:07 -0500 |
commit | 7e0a0847ed7ea02f03dd1442136a0cd684d91218 (patch) | |
tree | 52689a0598a3233fcd466cb44c79b39d66061596 /drivers/lightnvm | |
parent | e74ecf63ef9c3ff92bda531ed41a43ad4e75682e (diff) |
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: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Javier González <javier@javigon.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/lightnvm')
-rw-r--r-- | drivers/lightnvm/pblk-core.c | 5 | ||||
-rw-r--r-- | drivers/lightnvm/pblk-init.c | 2 | ||||
-rw-r--r-- | drivers/lightnvm/pblk-recovery.c | 8 | ||||
-rw-r--r-- | drivers/lightnvm/pblk.h | 10 |
4 files changed, 10 insertions, 15 deletions
diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c index 1b5ff51faa63..2a9e9facf44f 100644 --- a/drivers/lightnvm/pblk-core.c +++ b/drivers/lightnvm/pblk-core.c | |||
@@ -1065,7 +1065,7 @@ static int pblk_line_init_metadata(struct pblk *pblk, struct pblk_line *line, | |||
1065 | bitmap_set(line->lun_bitmap, 0, lm->lun_bitmap_len); | 1065 | bitmap_set(line->lun_bitmap, 0, lm->lun_bitmap_len); |
1066 | 1066 | ||
1067 | smeta_buf->header.identifier = cpu_to_le32(PBLK_MAGIC); | 1067 | smeta_buf->header.identifier = cpu_to_le32(PBLK_MAGIC); |
1068 | memcpy(smeta_buf->header.uuid, pblk->instance_uuid, 16); | 1068 | guid_copy((guid_t *)&smeta_buf->header.uuid, &pblk->instance_uuid); |
1069 | smeta_buf->header.id = cpu_to_le32(line->id); | 1069 | smeta_buf->header.id = cpu_to_le32(line->id); |
1070 | smeta_buf->header.type = cpu_to_le16(line->type); | 1070 | smeta_buf->header.type = cpu_to_le16(line->type); |
1071 | smeta_buf->header.version_major = SMETA_VERSION_MAJOR; | 1071 | smeta_buf->header.version_major = SMETA_VERSION_MAJOR; |
@@ -1874,7 +1874,8 @@ void pblk_line_close_meta(struct pblk *pblk, struct pblk_line *line) | |||
1874 | 1874 | ||
1875 | if (le32_to_cpu(emeta_buf->header.identifier) != PBLK_MAGIC) { | 1875 | if (le32_to_cpu(emeta_buf->header.identifier) != PBLK_MAGIC) { |
1876 | emeta_buf->header.identifier = cpu_to_le32(PBLK_MAGIC); | 1876 | emeta_buf->header.identifier = cpu_to_le32(PBLK_MAGIC); |
1877 | memcpy(emeta_buf->header.uuid, pblk->instance_uuid, 16); | 1877 | guid_copy((guid_t *)&emeta_buf->header.uuid, |
1878 | &pblk->instance_uuid); | ||
1878 | emeta_buf->header.id = cpu_to_le32(line->id); | 1879 | emeta_buf->header.id = cpu_to_le32(line->id); |
1879 | emeta_buf->header.type = cpu_to_le16(line->type); | 1880 | emeta_buf->header.type = cpu_to_le16(line->type); |
1880 | emeta_buf->header.version_major = EMETA_VERSION_MAJOR; | 1881 | emeta_buf->header.version_major = EMETA_VERSION_MAJOR; |
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index eb0135c77805..8b643d0bffae 100644 --- a/drivers/lightnvm/pblk-init.c +++ b/drivers/lightnvm/pblk-init.c | |||
@@ -130,7 +130,7 @@ static int pblk_l2p_recover(struct pblk *pblk, bool factory_init) | |||
130 | struct pblk_line *line = NULL; | 130 | struct pblk_line *line = NULL; |
131 | 131 | ||
132 | if (factory_init) { | 132 | if (factory_init) { |
133 | pblk_setup_uuid(pblk); | 133 | guid_gen(&pblk->instance_uuid); |
134 | } else { | 134 | } else { |
135 | line = pblk_recov_l2p(pblk); | 135 | line = pblk_recov_l2p(pblk); |
136 | if (IS_ERR(line)) { | 136 | if (IS_ERR(line)) { |
diff --git a/drivers/lightnvm/pblk-recovery.c b/drivers/lightnvm/pblk-recovery.c index 5ee20da7bdb3..6761d2afa4d0 100644 --- a/drivers/lightnvm/pblk-recovery.c +++ b/drivers/lightnvm/pblk-recovery.c | |||
@@ -703,11 +703,13 @@ struct pblk_line *pblk_recov_l2p(struct pblk *pblk) | |||
703 | 703 | ||
704 | /* The first valid instance uuid is used for initialization */ | 704 | /* The first valid instance uuid is used for initialization */ |
705 | if (!valid_uuid) { | 705 | if (!valid_uuid) { |
706 | memcpy(pblk->instance_uuid, smeta_buf->header.uuid, 16); | 706 | guid_copy(&pblk->instance_uuid, |
707 | (guid_t *)&smeta_buf->header.uuid); | ||
707 | valid_uuid = 1; | 708 | valid_uuid = 1; |
708 | } | 709 | } |
709 | 710 | ||
710 | if (memcmp(pblk->instance_uuid, smeta_buf->header.uuid, 16)) { | 711 | if (!guid_equal(&pblk->instance_uuid, |
712 | (guid_t *)&smeta_buf->header.uuid)) { | ||
711 | pblk_debug(pblk, "ignore line %u due to uuid mismatch\n", | 713 | pblk_debug(pblk, "ignore line %u due to uuid mismatch\n", |
712 | i); | 714 | i); |
713 | continue; | 715 | continue; |
@@ -737,7 +739,7 @@ struct pblk_line *pblk_recov_l2p(struct pblk *pblk) | |||
737 | } | 739 | } |
738 | 740 | ||
739 | if (!found_lines) { | 741 | if (!found_lines) { |
740 | pblk_setup_uuid(pblk); | 742 | guid_gen(&pblk->instance_uuid); |
741 | 743 | ||
742 | spin_lock(&l_mg->free_lock); | 744 | spin_lock(&l_mg->free_lock); |
743 | WARN_ON_ONCE(!test_and_clear_bit(meta_line, | 745 | WARN_ON_ONCE(!test_and_clear_bit(meta_line, |
diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h index 0dd697ea201e..72ae8755764e 100644 --- a/drivers/lightnvm/pblk.h +++ b/drivers/lightnvm/pblk.h | |||
@@ -646,7 +646,7 @@ struct pblk { | |||
646 | 646 | ||
647 | int sec_per_write; | 647 | int sec_per_write; |
648 | 648 | ||
649 | unsigned char instance_uuid[16]; | 649 | guid_t instance_uuid; |
650 | 650 | ||
651 | /* Persistent write amplification counters, 4kb sector I/Os */ | 651 | /* Persistent write amplification counters, 4kb sector I/Os */ |
652 | atomic64_t user_wa; /* Sectors written by user */ | 652 | atomic64_t user_wa; /* Sectors written by user */ |
@@ -1360,14 +1360,6 @@ static inline unsigned int pblk_get_secs(struct bio *bio) | |||
1360 | return bio->bi_iter.bi_size / PBLK_EXPOSED_PAGE_SIZE; | 1360 | return bio->bi_iter.bi_size / PBLK_EXPOSED_PAGE_SIZE; |
1361 | } | 1361 | } |
1362 | 1362 | ||
1363 | static inline void pblk_setup_uuid(struct pblk *pblk) | ||
1364 | { | ||
1365 | uuid_le uuid; | ||
1366 | |||
1367 | uuid_le_gen(&uuid); | ||
1368 | memcpy(pblk->instance_uuid, uuid.b, 16); | ||
1369 | } | ||
1370 | |||
1371 | static inline char *pblk_disk_name(struct pblk *pblk) | 1363 | static inline char *pblk_disk_name(struct pblk *pblk) |
1372 | { | 1364 | { |
1373 | struct gendisk *disk = pblk->disk; | 1365 | struct gendisk *disk = pblk->disk; |