From a3c2a2b838f2452d302be7b55d9177e5c9d0a439 Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Tue, 15 Jul 2008 21:21:45 +0200 Subject: [PATCH] --- yaml --- r: 101207 b: refs/heads/master c: d79c5a670ddf076a346ddcf3d9e21785ecab963f h: refs/heads/master i: 101205: e04cf651366a4362153a42d6ef12af90ad7325fb 101203: a0128bc490b6f6156772ac9b59937823474a0ba2 101199: fd79583dcbb9ff900211a7fdb283c2436717bdd0 v: v3 --- [refs] | 2 +- trunk/drivers/block/paride/pd.c | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 94483858a9f4..008023991efc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ed820f19521de246c5b7978f8f78290733a55b20 +refs/heads/master: d79c5a670ddf076a346ddcf3d9e21785ecab963f diff --git a/trunk/drivers/block/paride/pd.c b/trunk/drivers/block/paride/pd.c index 570f3b70dce7..5fdfa7c888ce 100644 --- a/trunk/drivers/block/paride/pd.c +++ b/trunk/drivers/block/paride/pd.c @@ -712,19 +712,17 @@ static void do_pd_request(struct request_queue * q) static int pd_special_command(struct pd_unit *disk, enum action (*func)(struct pd_unit *disk)) { - DECLARE_COMPLETION_ONSTACK(wait); - struct request rq; + struct request *rq; int err = 0; - blk_rq_init(NULL, &rq); - rq.rq_disk = disk->gd; - rq.end_io_data = &wait; - rq.end_io = blk_end_sync_rq; - blk_insert_request(disk->gd->queue, &rq, 0, func); - wait_for_completion(&wait); - if (rq.errors) - err = -EIO; - blk_put_request(&rq); + rq = blk_get_request(disk->gd->queue, READ, __GFP_WAIT); + + rq->cmd_type = REQ_TYPE_SPECIAL; + rq->special = func; + + err = blk_execute_rq(disk->gd->queue, disk->gd, rq, 0); + + blk_put_request(rq); return err; }