diff options
Diffstat (limited to 'block/blk-core.c')
-rw-r--r-- | block/blk-core.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index 96433980aee4..767b456f925d 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -1266,7 +1266,11 @@ retry: trace_block_sleeprq(q, bio, rw_flags & 1); spin_unlock_irq(q->queue_lock); - io_schedule(); + /* + * FIXME: this should be io_schedule(). The timeout is there as a + * workaround for some io timeout problems. + */ + io_schedule_timeout(5*HZ); /* * After sleeping, we become a "batching" process and will be able @@ -1782,6 +1786,11 @@ get_rq: rw_flags |= REQ_SYNC; /* + * Add in META/PRIO flags, if set, before we get to the IO scheduler + */ + rw_flags |= (bio->bi_rw & (REQ_META | REQ_PRIO)); + + /* * Grab a free request. This is might sleep but can not fail. * Returns with the queue unlocked. */ |