From: viro@parcelfarce.linux.theplanet.co.uk Equivalent transformation: instead of having do_pd_request1() calling do_pd_io() via pi_do_claimed() and do_pd_io() calling do_pd_io_start() via ps_set_intr(), do it the other way round. --- 25-akpm/drivers/block/paride/pd.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diff -puN drivers/block/paride/pd.c~PI7-claim_reorder-RC1 drivers/block/paride/pd.c --- 25/drivers/block/paride/pd.c~PI7-claim_reorder-RC1 Wed Jan 14 13:46:18 2004 +++ 25-akpm/drivers/block/paride/pd.c Wed Jan 14 13:46:18 2004 @@ -748,9 +748,8 @@ static void do_pd_request1(request_queue if (!pd_req) return; - pd_current = pd_req->rq_disk->private_data; - - pi_do_claimed(pd_current->pi, do_pd_io); + ps_continuation = do_pd_io; + ps_set_intr(); } static void do_pd_request(request_queue_t * q) @@ -792,8 +791,8 @@ static inline void next_request(int succ static void do_pd_io(void) { - ps_continuation = do_pd_io_start; - ps_set_intr(); + pd_current = pd_req->rq_disk->private_data; + pi_do_claimed(pd_current->pi, do_pd_io_start); } static void do_pd_io_start(void) _