Re: [PATCH 4/4] nvme: check that EUI/GUID/UUID are globally unique

Alan Adamson
2022-06-08T18:11:42Z

> On Jun 8, 2022, at 12:52 AM, Christoph Hellwig <hch@lst.de> wrote:
>
> On Mon, Jun 06, 2022 at 08:35:39PM +0000, Alan Adamson wrote:
>> nvme driver changes:
>
> Thanks!
>
>>
>> ret = nvme_global_check_duplicate_ids(ctrl->subsys, ids);
>> if (ret) {
>> - dev_err(ctrl->device,
>> - "globally duplicate IDs for nsid %d\n", nsid);
>> - return ret;
>> + if (ctrl->opts && ctrl->opts->clear_ids) {
>> + uuid_copy(&ids->uuid, &uuid_null);
>> + memset(&ids->nguid, 0, sizeof(ids->nguid));
>> + memset(&ids->eui64, 0, sizeof(ids->eui64));
>> + } else {
>> + dev_err(ctrl->device,
>> + "globally duplicate IDs for nsid %d\n", nsid);
>> + return ret;
>> + }
>
> I don't think this is the right place to clear the reported IDs.
> The proper place would be in the target code in
> nvmet_passthru_override_id_ns and a new
> nvmet_passthru_override_id_ns_desc like it. Otherwise we only catch
> the kernel driver uses and not other users of the IDs.

How do we get the clear_ids setting from the connect to the target?

Thanks,

Alan

>
>> @@ -593,6 +595,8 @@ static int nvmf_parse_options(struct nvmf_ctrl_options *opts,
>> }
>> kfree(opts->transport);
>> opts->transport = p;
>> + if (!strcmp(p, "loop"))
>> + opts->clear_ids = true;
>
> And maybe add a comment here.
>