[PATCH] ext3: multi-block get_block()
authorBadari Pulavarty <pbadari@us.ibm.com>
Sun, 26 Mar 2006 09:38:04 +0000 (01:38 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 26 Mar 2006 16:57:02 +0000 (08:57 -0800)
Mingming Cao recently added multi-block allocation support for ext3,
currently used only by DIO.  I added support to map multiple blocks for
mpage_readpages().  This patch add support for ext3_get_block() to deal
with multi-block mapping.  Basically it renames ext3_direct_io_get_blocks()
as ext3_get_block().

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>
fs/ext3/inode.c

index e68587a..48ae033 100644 (file)
@@ -941,9 +941,8 @@ out:
 
 #define DIO_CREDITS (EXT3_RESERVE_TRANS_BLOCKS + 32)
 
-static int
-ext3_direct_io_get_blocks(struct inode *inode, sector_t iblock,
-               struct buffer_head *bh_result, int create)
+static int ext3_get_block(struct inode *inode, sector_t iblock,
+                       struct buffer_head *bh_result, int create)
 {
        handle_t *handle = journal_current_handle();
        int ret = 0;
@@ -992,12 +991,6 @@ get_block:
        return ret;
 }
 
-static int ext3_get_block(struct inode *inode, sector_t iblock,
-                       struct buffer_head *bh_result, int create)
-{
-       return ext3_direct_io_get_blocks(inode, iblock, bh_result, create);
-}
-
 /*
  * `handle' can be NULL if create is zero
  */
@@ -1648,11 +1641,10 @@ static ssize_t ext3_direct_IO(int rw, struct kiocb *iocb,
 
        ret = blockdev_direct_IO(rw, iocb, inode, inode->i_sb->s_bdev, iov, 
                                 offset, nr_segs,
-                                ext3_direct_io_get_blocks, NULL);
+                                ext3_get_block, NULL);
 
        /*
-        * Reacquire the handle: ext3_direct_io_get_block() can restart the
-        * transaction
+        * Reacquire the handle: ext3_get_block() can restart the transaction
         */
        handle = journal_current_handle();