summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2003-02-05 16:56:38 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2003-02-05 16:56:38 -0800
commit418f398e98f5b86bd2e2febd0b04c4b41dfd46c1 (patch)
tree43ee963eb44e1b2178e3c1593432843dae355e72 /fs
parent00c8e791cba1bb88db8a8fd73106c28fdbab5716 (diff)
[PATCH] Remove most of the blk_run_queues() calls
We don't need these with self-unplugging queues. The patch also contains a couple of microopts suggested by Andrea: we don't need to run sync_page() if the page just came unlocked.
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;
}