From: "Matias Bjørling" <mb@lightnvm.io>
To: "Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Javier González" <javier@javigon.com>,
"Jens Axboe" <axboe@kernel.dk>,
linux-block@vger.kernel.org, "Christoph Hellwig" <hch@lst.de>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] lightnvm: pblk: Switch to use new generic UUID API
Date: Thu, 24 Jan 2019 19:18:19 +0100 [thread overview]
Message-ID: <1aa110f3-1fa8-a4b1-67eb-c11c3d2f71f1@lightnvm.io> (raw)
In-Reply-To: <20190124143137.13880-1-andriy.shevchenko@linux.intel.com>
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 <andriy.shevchenko@linux.intel.com>
> ---
>
> 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.
prev parent reply other threads:[~2019-01-24 18:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-24 14:31 Andy Shevchenko
2019-01-24 14:48 ` Javier González
2019-01-24 18:18 ` Matias Bjørling [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1aa110f3-1fa8-a4b1-67eb-c11c3d2f71f1@lightnvm.io \
--to=mb@lightnvm.io \
--cc=andriy.shevchenko@linux.intel.com \
--cc=axboe@kernel.dk \
--cc=hch@lst.de \
--cc=javier@javigon.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®