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

Alan Adamson alan.adamson at oracle.com
Wed Jun 8 11:11:04 PDT 2022



> On Jun 8, 2022, at 12:52 AM, Christoph Hellwig <hch at 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.
> 




More information about the Linux-nvme mailing list