OSDN Git Service

lightnvm: pblk: Switch to use new generic UUID API
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 11 Feb 2019 12:25:05 +0000 (13:25 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 11 Feb 2019 15:18:07 +0000 (08:18 -0700)
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>
drivers/lightnvm/pblk-core.c
drivers/lightnvm/pblk-init.c
drivers/lightnvm/pblk-recovery.c
drivers/lightnvm/pblk.h

index 1b5ff51..2a9e9fa 100644 (file)
@@ -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;
index eb0135c..8b643d0 100644 (file)
@@ -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)) {
index 5ee20da..6761d2a 100644 (file)
@@ -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,
index 0dd697e..72ae875 100644 (file)
@@ -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;