summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/buffer.c7
-rw-r--r--fs/fs-writeback.c1
-rw-r--r--fs/mpage.c2
3 files changed, 3 insertions, 7 deletions
diff --git a/fs/buffer.c b/fs/buffer.c
index 3fc9e47c5a0a..bf6ae714c730 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -127,9 +127,10 @@ void __wait_on_buffer(struct buffer_head * bh)
get_bh(bh);
do {
prepare_to_wait(wqh, &wait, TASK_UNINTERRUPTIBLE);
- blk_run_queues();
- if (buffer_locked(bh))
+ if (buffer_locked(bh)) {
+ blk_run_queues();
io_schedule();
+ }
} while (buffer_locked(bh));
put_bh(bh);
finish_wait(wqh, &wait);
@@ -959,8 +960,6 @@ no_grow:
* the reserve list is empty, we're sure there are
* async buffer heads in use.
*/
- blk_run_queues();
-
free_more_memory();
goto try_again;
}
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index d3db0faa9abe..1814f7a9b5ce 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -334,7 +334,6 @@ writeback_inodes(struct writeback_control *wbc)
}
spin_unlock(&sb_lock);
spin_unlock(&inode_lock);
- blk_run_queues();
}
/*
diff --git a/fs/mpage.c b/fs/mpage.c
index 846ca1aca1bc..3460144c1894 100644
--- a/fs/mpage.c
+++ b/fs/mpage.c
@@ -618,7 +618,6 @@ mpage_writepages(struct address_space *mapping,
int (*writepage)(struct page *page, struct writeback_control *wbc);
if (wbc->nonblocking && bdi_write_congested(bdi)) {
- blk_run_queues();
wbc->encountered_congestion = 1;
return 0;
}
@@ -673,7 +672,6 @@ mpage_writepages(struct address_space *mapping,
if (ret || (--(wbc->nr_to_write) <= 0))
done = 1;
if (wbc->nonblocking && bdi_write_congested(bdi)) {
- blk_run_queues();
wbc->encountered_congestion = 1;
done = 1;
}