Commit 403d24bf authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Fix cciss hang

From: Jens Axboe <axboe@suse.de>

It fixes a hang when performing large I/O's.  Has been tested and acked by
the maintainer, "Wiran, Francis" <francis.wiran@hp.com>.
parent e46e0cf2
......@@ -1887,7 +1887,7 @@ static void do_cciss_request(request_queue_t *q)
BUG();
if (( c = cmd_alloc(h, 1)) == NULL)
goto startio;
goto full;
blkdev_dequeue_request(creq);
......@@ -1960,8 +1960,9 @@ static void do_cciss_request(request_queue_t *q)
h->maxQsinceinit = h->Qdepth;
goto queue;
startio:
full:
blk_stop_queue(q);
startio:
start_io(h);
}
......
......@@ -1072,8 +1072,8 @@ static void blk_unplug_timeout(unsigned long data)
**/
void blk_start_queue(request_queue_t *q)
{
if (test_and_clear_bit(QUEUE_FLAG_STOPPED, &q->queue_flags))
schedule_work(&q->unplug_work);
clear_bit(QUEUE_FLAG_STOPPED, &q->queue_flags);
schedule_work(&q->unplug_work);
}
/**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment