Re: [Fwd: [RFT] major libata update]

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

 



(CC's restored)

James Bottomley wrote:
1) your host_eh_scheduled logic looks wrong.  It seems to me that you
can miss the wakeup if the host is busy?  I also don't see a need to

I can't see a case _in libata operation_ where a set of circumstances arises that causes missed wakeups, can you elaborate?


move the prototype out of scsi_priv.h ... it should only be used by
transport classes, anyway.

We're talking about all ->eh_strategy_handler() users, which is a valid EH API for an LLDD to choose. Granted libata is really the only one right now.

Long term, ->eh_strategy_handler and transport classes are block layer not SCSI level anyway, so scsi_priv.h is clearly inappropriate.


2) This scsi_req_abort_cmd() is fundamentally the wrong logic.
Everything else is communicated back as a result code from the command
in done().  This should be no different ... A status return of
DID_FAILED which scsi_decide_disposition() always translates to FAILED
would seem to do exactly what you want without all the overhead.

Inigo sez[1]: I do not think "fundamentally wrong" means what you think it means.

You miss the fact that the timer may have already fired, in which completing a command gets you...... not a damned thing. scsi_done() will simply return, if the timeout has fired. This has always been an annoying problem to work around.

scsi_req_abort_cmd() may perhaps be misnamed, but it GUARANTEES a set of operations which libata EH wants. Certainly, if we can guarantee this set of conditions another way, we are open to any alternate path.

	Jeff


[1] from one of my favorite movies. search http://us.imdb.com/title/tt0093779/quotes for "INCONCEIVABLE"
-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux