Re: [bug report] most of blktests nvme/ failed on the latest linux tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 28, 2023 at 08:25:24AM +0000, Shinichiro Kawasaki wrote:
> I looked in nvme-cli code. When it generates hostnqn, it does not set hostid.
> A quick dirty patch below for nvme-cli avoided the failures for nvme_trtype=loop
> condition. If this is the fix approach, the kernel commit will need
> corresponding change in the nvme-cli side.
> 
> 
> diff --git a/fabrics.c b/fabrics.c
> index ac240cad..f1981206 100644
> --- a/fabrics.c
> +++ b/fabrics.c
> @@ -753,8 +753,13 @@ int nvmf_discover(const char *desc, int argc, char **argv, bool connect)
>  	hostid_arg = hostid;
>  	if (!hostnqn)
>  		hostnqn = hnqn = nvmf_hostnqn_from_file();
> -	if (!hostnqn)
> +	if (!hostnqn) {
> +		char *uuid;
>  		hostnqn = hnqn = nvmf_hostnqn_generate();
> +		uuid = strstr(hostnqn, "uuid:");
> +		if (uuid)
> +			hostid = hid = strdup(uuid + strlen("uuid:"));
> +	}
>  	if (!hostid)
>  		hostid = hid = nvmf_hostid_from_file();
>  	h = nvme_lookup_host(r, hostnqn, hostid);
> @@ -966,8 +971,13 @@ int nvmf_connect(const char *desc, int argc, char **argv)
>  
>  	if (!hostnqn)
>  		hostnqn = hnqn = nvmf_hostnqn_from_file();
> -	if (!hostnqn)
> +	if (!hostnqn) {
> +		char *uuid;
>  		hostnqn = hnqn = nvmf_hostnqn_generate();
> +		uuid = strstr(hostnqn, "uuid:");
> +		if (uuid)
> +			hostid = hid = strdup(uuid + strlen("uuid:"));
> +	}
>  	if (!hostid)
>  		hostid = hid = nvmf_hostid_from_file();
>  	h = nvme_lookup_host(r, hostnqn, hostid);

Looks reasonable. Though I would propably also add a warning iff
nvmf_hostid_from_file() does return a not matching hostid.



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux