[PATCH] ext3: multi-block get_block()
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>
This commit is contained in:
committed by
Linus Torvalds
parent
d6859bfca8
commit
f91a2ad2ed
@@ -941,8 +941,7 @@ out:
|
|||||||
|
|
||||||
#define DIO_CREDITS (EXT3_RESERVE_TRANS_BLOCKS + 32)
|
#define DIO_CREDITS (EXT3_RESERVE_TRANS_BLOCKS + 32)
|
||||||
|
|
||||||
static int
|
static int ext3_get_block(struct inode *inode, sector_t iblock,
|
||||||
ext3_direct_io_get_blocks(struct inode *inode, sector_t iblock,
|
|
||||||
struct buffer_head *bh_result, int create)
|
struct buffer_head *bh_result, int create)
|
||||||
{
|
{
|
||||||
handle_t *handle = journal_current_handle();
|
handle_t *handle = journal_current_handle();
|
||||||
@@ -992,12 +991,6 @@ get_block:
|
|||||||
return ret;
|
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
|
* `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,
|
ret = blockdev_direct_IO(rw, iocb, inode, inode->i_sb->s_bdev, iov,
|
||||||
offset, nr_segs,
|
offset, nr_segs,
|
||||||
ext3_direct_io_get_blocks, NULL);
|
ext3_get_block, NULL);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reacquire the handle: ext3_direct_io_get_block() can restart the
|
* Reacquire the handle: ext3_get_block() can restart the transaction
|
||||||
* transaction
|
|
||||||
*/
|
*/
|
||||||
handle = journal_current_handle();
|
handle = journal_current_handle();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user