Re: [PATCH target] target: Add initiatorname to NON_EXISTENT_LUN error

From: Mike Christie
Date: Sun May 17 2020 - 15:16:08 EST


On 5/16/20 6:29 PM, Lance Digby wrote:
> Mike, Thanks for the review!
> The pr_err Detected NON_EXISTENT_LUN is the error messages issued
> for the TCM_NON_EXISTENT_LUN retcode so I believe they are the same.
> Simply scanning for the wrong lun on an initiator will generate this
> error on the target but not generate an error on the initiator. And I
> have seen installs, with a lot of initiators, automate the scanning of
> such luns incorrectly deemed missing.
> While this looks like a simple problem it can take days to get
> access or the tcp traces to sort it out.
>
> Within the same routine there is another pr_err for
> TCM_WRITE_PROTECTED that I did not add the initiatorname to as I
> thought this would leave a heavy footprint on the initiator. If you

I'm not sure what you mean by heavy footprint on the initiator part means.

I would say do whatever is helpful to you to debug the problem. For
TCM_WRITE_PROTECTED I'm not sure the initiatorname is helpful. I think
the target name and tpg would be useful, because I think you sometimes
set it at the tpg level then it gets inherited by the LU. But I think
it's a pain to get to the target name from this code path, so I wouldn't
worry about adding it now.

> believe this should be changed for consistency please let me know and
> I will add this and change to nacl->initiatorname.

Just to make sure we are on the same page. I was just commenting about
the other NON_EXISTENT_LUN instace in transport_lookup_tmr_lun. I just
thought we would want/need the same info there.


>
>
>
>
>
>
>
>
>
> On Sat, May 16, 2020 at 9:50 AM Mike Christie <mchristi@xxxxxxxxxx> wrote:
>>
>> On 5/13/20 11:01 PM, Lance Digby wrote:
>>> The NON_EXISTENT_LUN error can be written without an error condition
>>> on the initiator responsible. Adding the initiatorname to this message
>>> will reduce the effort required to fix this when many initiators are
>>> supported by a target.
>>>
>>> Signed-off-by: Lance Digby <lance.digby@xxxxxxxxx>
>>> ---
>>> drivers/target/target_core_device.c | 5 +++--
>>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
>>> index 4cee113..604dea0 100644
>>> --- a/drivers/target/target_core_device.c
>>> +++ b/drivers/target/target_core_device.c
>>> @@ -100,9 +100,10 @@
>>> */
>>> if (unpacked_lun != 0) {
>>> pr_err("TARGET_CORE[%s]: Detected NON_EXISTENT_LUN"
>>> - " Access for 0x%08llx\n",
>>> + " Access for 0x%08llx from %s\n",
>>> se_cmd->se_tfo->fabric_name,
>>> - unpacked_lun);
>>> + unpacked_lun,
>>> + se_sess->se_node_acl->initiatorname);
>>
>> You can do nacl->initiatorname.
>>
>> Do you also want add the name to the tmr case? It's probably not common,
>> but the error message would be consistent.
>>
>>> return TCM_NON_EXISTENT_LUN;
>>> }
>>>
>>
>