aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJeff Moyer <jmoyer@redhat.com>2009-04-22 08:08:13 -0400
committerJens Axboe <jens.axboe@oracle.com>2009-04-28 01:37:33 -0400
commitdb2dbb12dc47a50c7a4c5678f526014063e486f6 (patch)
tree8bfa3fe41e674f584eb37a7767c008d609b41d75 /fs
parentdb29a6b49674085f136331014ba0eee249c16a2c (diff)
block: implement blkdev_readpages
Doing a proper block dev ->readpages() speeds up the crazy dump(8) approach of using interleaved process IO. Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/block_dev.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c
index f45dbc18dd17..a85fe310fc6f 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -331,6 +331,12 @@ static int blkdev_readpage(struct file * file, struct page * page)
331 return block_read_full_page(page, blkdev_get_block); 331 return block_read_full_page(page, blkdev_get_block);
332} 332}
333 333
334static int blkdev_readpages(struct file *file, struct address_space *mapping,
335 struct list_head *pages, unsigned nr_pages)
336{
337 return mpage_readpages(mapping, pages, nr_pages, blkdev_get_block);
338}
339
334static int blkdev_write_begin(struct file *file, struct address_space *mapping, 340static int blkdev_write_begin(struct file *file, struct address_space *mapping,
335 loff_t pos, unsigned len, unsigned flags, 341 loff_t pos, unsigned len, unsigned flags,
336 struct page **pagep, void **fsdata) 342 struct page **pagep, void **fsdata)
@@ -1399,6 +1405,7 @@ static int blkdev_releasepage(struct page *page, gfp_t wait)
1399 1405
1400static const struct address_space_operations def_blk_aops = { 1406static const struct address_space_operations def_blk_aops = {
1401 .readpage = blkdev_readpage, 1407 .readpage = blkdev_readpage,
1408 .readpages = blkdev_readpages,
1402 .writepage = blkdev_writepage, 1409 .writepage = blkdev_writepage,
1403 .sync_page = block_sync_page, 1410 .sync_page = block_sync_page,
1404 .write_begin = blkdev_write_begin, 1411 .write_begin = blkdev_write_begin,