|
@@ -1277,7 +1277,7 @@ static void do_ubd_request(struct request_queue *q)
|
|
|
|
|
|
while(1){
|
|
|
struct ubd *dev = q->queuedata;
|
|
|
- if(dev->end_sg == 0){
|
|
|
+ if(dev->request == NULL){
|
|
|
struct request *req = blk_fetch_request(q);
|
|
|
if(req == NULL)
|
|
|
return;
|
|
@@ -1299,7 +1299,8 @@ static void do_ubd_request(struct request_queue *q)
|
|
|
return;
|
|
|
}
|
|
|
prepare_flush_request(req, io_req);
|
|
|
- submit_request(io_req, dev);
|
|
|
+ if (submit_request(io_req, dev) == false)
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
while(dev->start_sg < dev->end_sg){
|