Re: [PATCH v2] scsi: target: core: check SR field in REPORT LUNS

Bart Van Assche
2021-01-28T20:49:08Z

On 1/27/21 6:45 AM, Dmitriy Bogdanov wrote:
> Hi Martin,
>
>>> + switch (sr) {
>>> + case SCSI_SELECT_WELLKNOWN:
>>> + case SCSI_SELECT_ADMINISTRATIVE:
>>> + case SCSI_SELECT_SUBSIDIARY:
>>> + /* report empty lun list */
>>> + goto out;
>
>> I'm a bit concerned about things inadvertently breaking if we return an empty list for the well known LUNs.
>
> According to SPC we shall report an empty list if there is no well-known LUNS.
> FreeBSD has the same logic in REPORT LUNS handling. SCST does not support SELECT_WELLKNOWN case at all.
>
> I don't know the history of the existing behaviour to send always LUN0 instead of empty list. Probably it was
> for the SCSI_SELECT_ALL_ACCESSIBLE(0x02) case, where SPC allows LUN0. My patch keeps it for the 0x00, 0x02, 0x11 cases.
> Thus, I believe it does not break the backward compatibility.

Will this change require users to update their LUN configuration? Some
initiator operating systems require presence of a dummy LUN 0. Although
I agree that it is cleaner not to provide a hardcoded LUN 0, I think
Martin is concerned about this patch potentially breaking existing
configurations and causing frustration among LIO users.

Bart.