summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Axboe <jaxboe@fusionio.com>2010-04-19 10:04:38 +0200
committerJens Axboe <jaxboe@fusionio.com>2011-03-10 08:52:26 +0100
commit5b417b1873694ece3291d7f64a943304559a817b (patch)
tree156662430fb4fb5341547dec736628424bbddb1a
parent55602dd66f5353981b53f734e26c307f310ced37 (diff)
downloadkernel-common-5b417b1873694ece3291d7f64a943304559a817b.tar.gz
kernel-common-5b417b1873694ece3291d7f64a943304559a817b.tar.bz2
kernel-common-5b417b1873694ece3291d7f64a943304559a817b.zip
read-ahead: use plugging
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
-rw-r--r--mm/readahead.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/mm/readahead.c b/mm/readahead.c
index cbddc3e17246..2c0cc489e288 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
@@ -109,9 +109,12 @@ EXPORT_SYMBOL(read_cache_pages);
static int read_pages(struct address_space *mapping, struct file *filp,
struct list_head *pages, unsigned nr_pages)
{
+ struct blk_plug plug;
unsigned page_idx;
int ret;
+ blk_start_plug(&plug);
+
if (mapping->a_ops->readpages) {
ret = mapping->a_ops->readpages(filp, mapping, pages, nr_pages);
/* Clean up the remaining pages */
@@ -129,7 +132,10 @@ static int read_pages(struct address_space *mapping, struct file *filp,
page_cache_release(page);
}
ret = 0;
+
out:
+ blk_finish_plug(&plug);
+
return ret;
}