2024-05-28 10:12:01

by John Garry

[permalink] [raw]
Subject: Re: [PATCH v2] scsi: libsas: Fix exp-attached end device cannot be scanned in again after probe failed

On 25/05/2024 04:08, yangxingui wrote:
>> Why do these new additions not cover the same job which those calls to
>> the same functions @out covers?
> For asynchronous probes like sata, the failure occurs after @out. After
> adding the device to port_delete_list, the port is not deleted
> immediately. This may cause the device to fail to create a new port
> because the previous port has not been deleted when the device attached
> again. as follow:
>
> 1. REVALIDATING DOMAIN
> 2. new device attached
> 3. ata_sas_async_probe
> 4. done REVALIDATING DOMAIN
> 5. @out, handle parent->port->sas_port_del_list
> 6. sata probe failed
> 7. add phy->port->list to parent->port->sas_port_del_list // port won't
> delete now
>
> 8、REVALIDATING DOMAIN
> 9、new device attached
> 10、new port create failed, as port already exits.
>
ok, so next please consider these items:

- add a helper for calling sas_destruct_devices() and sas_destruct_ports().

- add a comment on why we have this new extra call to
sas_destruct_devices() and sas_destruct_ports()

- can we put the new call to sas_destruct_devices() and
sas_destruct_ports() after 7, above? i.e. the
sas_probe_devices() call? It would look a bit neater.

Thanks,
John