Re: [patch] My AMD IDE driver, v2.7

Martin Dalecki
2002-03-12T11:41:22Z

Linus Torvalds wrote:
> On Mon, 11 Mar 2002, Linus Torvalds wrote:
>
>> - attach to one or more request queue(s). Notice that you should not have
>> _one_ module that handles all request queues, because the filter module
>> obviously has to be different for an ATA disk than for a SCSI disk, and
>> in fact it might be different for an IBM ATA disk than for a Maxtor ATA
>> disk, for example.
>>
>
> Btw, to tie this back to the other IDE thread, namely the suspend/resume
> thing, I think things like that should also just push commands down the
> request list. In particular, instead of waiting until the handler is NULL,
> it should do something like
>
> - create a "sync" request
> - do the equivalent of
>
> DECLARE_COMPLETION(wait);
> rq->waiting = &wait;
> q->elevator.elevator_add_req_fn(q, rq, queue_head);
> wait_for_completion(&wait);
>
> which automatically synchronizes with any outstanding requests (simply
> by virtue of the elevator knowing not to re-order/merge special requests,
> so when the sync command in finished, we know all other commands have
> finished too).
>
> Note that this should be the same code as for a shutdown as well - we
> should finish with a flush buffers request and wait for it to have
> completed.
>
> I'd like a _lot_ of stuff to stop using "do_xxx_command()", and move toa
> higher layer so that more code can be shared between different subsystems
> (all of these "sync" issues are really completely generic, and should
> _not_ be duplicated across drivers or subsystems).
>

"Amen Brother" to this. Getting device id strings and others are in the
same gang.

BTW.> Would you dare to care to splow out a 2.5.7-pre1 just to allow
synchronization without bitkeeper?