在 2008-08-19二的 12:18 +0530,Aneesh Kumar K.V写道: > a) rename num to nrblocks to clearly indicate we expecting block count as argument. > b) renmae ext4_writepages_trans_blocks to ext4_da_writepages_trans_blocks to > indicate it is the delayed allocation writepages transaction credit. > c) Add some comments. remove some stale comments. > > Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Acked-by: Mingming Cao <cmm@xxxxxxxxxx> > --- > fs/ext4/extents.c | 8 ++++---- > fs/ext4/inode.c | 14 ++++++++------ > 2 files changed, 12 insertions(+), 10 deletions(-) > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > index 73bb308..bf612a7 100644 > --- a/fs/ext4/extents.c > +++ b/fs/ext4/extents.c > @@ -1893,7 +1893,7 @@ static int ext4_ext_rm_idx(handle_t *handle, struct inode *inode, > * When pass the actual path, the caller should calculate credits > * under i_data_sem. > */ > -int ext4_ext_calc_credits_for_single_extent(struct inode *inode, int num, > +int ext4_ext_calc_credits_for_single_extent(struct inode *inode, int nrblocks, > struct ext4_ext_path *path) > { > if (path) { > @@ -1912,12 +1912,12 @@ int ext4_ext_calc_credits_for_single_extent(struct inode *inode, int num, > * and other metadat blocks still need to be > * accounted. > */ > - /* 1 one bitmap, 1 block group descriptor */ > + /* 1 bitmap, 1 block group descriptor */ > ret = 2 + EXT4_META_TRANS_BLOCKS(inode->i_sb); > } > } > > - return ext4_chunk_trans_blocks(inode, num); > + return ext4_chunk_trans_blocks(inode, nrblocks); > } > > /* > @@ -1931,7 +1931,7 @@ int ext4_ext_calc_credits_for_single_extent(struct inode *inode, int num, > * If the nrblocks are discontiguous, they could cause > * the whole tree split more than once, but this is really rare. > */ > -int ext4_ext_index_trans_blocks(struct inode *inode, int num, int chunk) > +int ext4_ext_index_trans_blocks(struct inode *inode, int nrblocks, int chunk) > { > int index; > int depth = ext_depth(inode); > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index a10f8e5..b32a723 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -2321,16 +2321,18 @@ static int ext4_da_writepage(struct page *page, > * a single extent allocation into a single transaction, > * ext4_da_writpeages() will loop calling this before > * the block allocation. > - * > - * The page vector size limited the max number of pages could > - * be writeout at a time. Based on this, the max blocks to pass to > - * get_block is calculated > */ > > -static int ext4_writepages_trans_blocks(struct inode *inode) > +static int ext4_da_writepages_trans_blocks(struct inode *inode) > { > int max_blocks = EXT4_I(inode)->i_reserved_data_blocks; > > + /* > + * With noextent format the journal credit needed to > + * insert nrblocks contiguous block is dependent on > + * number of contiguous block. So we will limit > + * number of contiguous block to a sane value > + */ > if (!(inode->i_flags & EXT4_EXTENTS_FL) && > (max_blocks > EXT4_MAX_TRANS_DATA)) > max_blocks = EXT4_MAX_TRANS_DATA; > @@ -2387,7 +2389,7 @@ static int ext4_da_writepages(struct address_space *mapping, > * by delalloc > */ > BUG_ON(ext4_should_journal_data(inode)); > - needed_blocks = ext4_writepages_trans_blocks(inode); > + needed_blocks = ext4_da_writepages_trans_blocks(inode); > > /* start a new transaction*/ > handle = ext4_journal_start(inode, needed_blocks); -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html