Re: [PATCH 04/36] target: Does tmr notify on aborted command

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

 



On 7/7/2022, Dmitry Bogdanov wrote:
> Hi Thinh,
>
> On Wed, Jul 06, 2022 at 04:34:49PM -0700, Thinh Nguyen wrote:
>> If the tmr_notify is not implemented, simply execute a generic command
>> completion to notify the command abort.
> Why? What are you trying to fix?

If tmr_notify() is not implemented (which most don't), then the user 
won't get notified of the command completion.

I was trying to directly notify the user via target_complete_cmd(). It 
may not be the right way to handle this, any advise?

Thanks,
Thinh

>> Signed-off-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx>
>> ---
>>   drivers/target/target_core_tmr.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/target/target_core_tmr.c b/drivers/target/target_core_tmr.c
>> index 7a7e24069ba7..2af80d0998bf 100644
>> --- a/drivers/target/target_core_tmr.c
>> +++ b/drivers/target/target_core_tmr.c
>> @@ -14,6 +14,7 @@
>>   #include <linux/spinlock.h>
>>   #include <linux/list.h>
>>   #include <linux/export.h>
>> +#include <scsi/scsi_proto.h>
>>   
>>   #include <target/target_core_base.h>
>>   #include <target/target_core_backend.h>
>> @@ -150,6 +151,9 @@ void core_tmr_abort_task(
>>   			if (dev->transport->tmr_notify)
>>   				dev->transport->tmr_notify(dev, TMR_ABORT_TASK,
>>   							   &aborted_list);
>> +			else
>> +				target_complete_cmd(se_cmd,
>> +						    SAM_STAT_TASK_ABORTED);
> That is wrong and breaks a command lifecycle and command kref counting.
> target_complete_cmd is used to be called by a backend driver.
>>   
>>   			list_del_init(&se_cmd->state_list);
>>   			target_put_cmd_and_wait(se_cmd);





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux