Re: [PATCH v2] lightnvm: pblk: Switch to use new generic UUID API

2019-01-24 Thread Matias Bjørling

On 1/24/19 3:31 PM, Andy Shevchenko wrote:

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 
---

v2:
- convert instance_uuid to guid_t and get rid of pblk_setup_uuid()
- fix subject line to show subsystem

  drivers/lightnvm/pblk-core.c |  4 ++--
  drivers/lightnvm/pblk-init.c |  2 +-
  drivers/lightnvm/pblk-recovery.c |  8 +---
  drivers/lightnvm/pblk.h  | 10 +-
  4 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c
index 1ff165351180..189339965957 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,
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,7 @@ 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;
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
index f9a3e47b6a93..5768333d103f 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)
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)) {
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)
  
  		/* 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,
diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h
index 85e38ed62f85..12bf02df4204 100644
--- a/drivers/lightnvm/pblk.h
+++ b/drivers/lightnvm/pblk.h
@@ -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;



Thanks Andy. I've applied it for 5.1.


Re: [PATCH v2] lightnvm: pblk: Switch to use new generic UUID API

2019-01-24 Thread Javier González
> On 24 Jan 2019, at 15.31, Andy Shevchenko  
> wrote:
> 
> 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 
> ---
> 
> v2:
> - convert instance_uuid to guid_t and get rid of pblk_setup_uuid()
> - fix subject line to show subsystem
> 
> drivers/lightnvm/pblk-core.c |  4 ++--
> drivers/lightnvm/pblk-init.c |  2 +-
> drivers/lightnvm/pblk-recovery.c |  8 +---
> drivers/lightnvm/pblk.h  | 10 +-
> 4 files changed, 9 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c
> index 1ff165351180..189339965957 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,
>   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,7 @@ 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;
> diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
> index f9a3e47b6a93..5768333d103f 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)
>   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)) {
> 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)
> 
>   /* 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,
> diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h
> index 85e38ed62f85..12bf02df4204 100644
> --- a/drivers/lightnvm/pblk.h
> +++ b/drivers/lightnvm/pblk.h
> @@ -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;
> --
> 2.20.1

Looks good to me. Thanks Andy.


Reviewed-by: Javier González 



signature.asc
Description: Message signed with OpenPGP


[PATCH v2] lightnvm: pblk: Switch to use new generic UUID API

2019-01-24 Thread Andy Shevchenko
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 
---

v2:
- convert instance_uuid to guid_t and get rid of pblk_setup_uuid()
- fix subject line to show subsystem

 drivers/lightnvm/pblk-core.c |  4 ++--
 drivers/lightnvm/pblk-init.c |  2 +-
 drivers/lightnvm/pblk-recovery.c |  8 +---
 drivers/lightnvm/pblk.h  | 10 +-
 4 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c
index 1ff165351180..189339965957 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,
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,7 @@ 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;
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
index f9a3e47b6a93..5768333d103f 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)
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)) {
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)
 
/* 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,
diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h
index 85e38ed62f85..12bf02df4204 100644
--- a/drivers/lightnvm/pblk.h
+++ b/drivers/lightnvm/pblk.h
@@ -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;
-- 
2.20.1