summaryrefslogtreecommitdiffstats
path: root/drivers/lightnvm
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2019-02-11 07:25:05 -0500
committerJens Axboe <axboe@kernel.dk>2019-02-11 10:18:07 -0500
commit7e0a0847ed7ea02f03dd1442136a0cd684d91218 (patch)
tree52689a0598a3233fcd466cb44c79b39d66061596 /drivers/lightnvm
parente74ecf63ef9c3ff92bda531ed41a43ad4e75682e (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.c5
-rw-r--r--drivers/lightnvm/pblk-init.c2
-rw-r--r--drivers/lightnvm/pblk-recovery.c8
-rw-r--r--drivers/lightnvm/pblk.h10
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
1363static 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
1371static inline char *pblk_disk_name(struct pblk *pblk) 1363static inline char *pblk_disk_name(struct pblk *pblk)
1372{ 1364{
1373 struct gendisk *disk = pblk->disk; 1365 struct gendisk *disk = pblk->disk;