Re: [PATCH] Remove two cancel_delayed_work() calls from the mid-layer

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

 



On Mon, Jun 02, 2014 at 11:50:52AM +0200, Bart Van Assche wrote:
> scsi_put_command() is either invoked before blk_start_request() or
> after block layer processing has completed.  scsi_cmnd.abort_work
> is scheduled from inside the SCSI timeout handler.  The block layer
> guarantees that either the regular completion handler
> (softirq_done_fn()) or the timeout handler (rq_timed_out_fn()) is
> invoked but not both. This means that scsi_put_command() is never
> invoked while abort_work is scheduled.  Hence remove the
> cancel_delayed_work() call from scsi_put_command().
> 
> Similarly, scsi_abort_command() is only invoked from the SCSI
> timeout handler. If scsi_abort_command() is invoked for a SCSI
> command with the SCSI_EH_ABORT_SCHEDULED flag set this means that
> scmd_eh_abort_handler() has already invoked scsi_queue_insert() and
> hence that scsi_cmnd.abort_work is no longer pending. Hence also
> remove the cancel_delayed_work() call from scsi_abort_command().
> 
> Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx>

Looks good,

Reviewed-by: Christoph Hellwig <hch@xxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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