summary refs log tree commit diff
path: root/fs/jfs
diff options
context:
space:
mode:
authorBadari Pulavarty <pbadari@us.ibm.com>2006-03-26 01:38:01 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-26 08:57:01 -0800
commitfa30bd058b746c0e2318a77ff8b4977faa924c2c (patch)
treea91abdcc4909da5dd16ed1bab91b5764eafed174 /fs/jfs
parentb0cf2321c6599138f860517745503691556d8453 (diff)
downloadlinux-fa30bd058b746c0e2318a77ff8b4977faa924c2c.tar.gz
[PATCH] map multiple blocks for mpage_readpages()
This patch changes mpage_readpages() and get_block() to get the disk mapping
information for multiple blocks at the same time.

b_size represents the amount of disk mapping that needs to mapped.  On the
successful get_block() b_size indicates the amount of disk mapping thats
actually mapped.  Only the filesystems who care to use this information and
provide multiple disk blocks at a time can choose to do so.

No changes are needed for the filesystems who wants to ignore this.

[akpm@osdl.org: cleanups]
Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com>
Cc: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/jfs')
-rw-r--r--fs/jfs/inode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c
index 51a5fed90cca..7239ef339489 100644
--- a/fs/jfs/inode.c
+++ b/fs/jfs/inode.c
@@ -258,7 +258,8 @@ jfs_get_blocks(struct inode *ip, sector_t lblock, unsigned long max_blocks,
 static int jfs_get_block(struct inode *ip, sector_t lblock,
 			 struct buffer_head *bh_result, int create)
 {
-	return jfs_get_blocks(ip, lblock, 1, bh_result, create);
+	return jfs_get_blocks(ip, lblock, bh_result->b_size >> ip->i_blkbits,
+			bh_result, create);
 }
 
 static int jfs_writepage(struct page *page, struct writeback_control *wbc)