From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: Andreas Dilger <adilger@sun.com>
Cc: Mingming Cao <cmm@us.ibm.com>, linux-ext4@vger.kernel.org
Subject: Re: ext4_ext_calc_credits_for_single_extent() bug?
Date: Thu, 2 Jul 2009 00:08:54 +0530 [thread overview]
Message-ID: <20090701183854.GC31235@skywalker> (raw)
In-Reply-To: <20090629224133.GF19362@webber.adilger.int>
On Tue, Jun 30, 2009 at 12:41:33AM +0200, Andreas Dilger wrote:
> I was looking at the function ext4_ext_calc_credits_for_insert(), because
> it appeared similar to a function we were using in Lustre and I wanted to
> remove redundant code from our patches. On closer inspection, however,
> that function is doing something strange that wasn't in our original code.
>
> int ext4_ext_calc_credits_for_single_extent(struct inode *inode, int nrblocks,
> struct ext4_ext_path *path)
> {
> if (path) {
> int depth = ext_depth(inode);
> int ret = 0;
>
> /* probably there is space in leaf? */
> if (le16_to_cpu(path[depth].p_hdr->eh_entries)
> < le16_to_cpu(path[depth].p_hdr->eh_max)) {
>
> /*
> * There are some space in the leaf tree, no
> * need to account for leaf block credit
> *
> * bitmaps and block group descriptor blocks
> * and other metadat blocks still need to be
> * accounted.
> */
> /* 1 bitmap, 1 block group descriptor */
> ret = 2 + EXT4_META_TRANS_BLOCKS(inode->i_sb);
> }
> }
>
> return ext4_chunk_trans_blocks(inode, nrblocks);
> }
>
> It computes "ret" but doesn't actually use it, and then
> ext4_chunk_trans_blocks() does nothing but call ext4_meta_trans_blocks(),
> which is doing the bulk of the calculation.
>
> It looks like this was committed by Mingming in "ext4: journal credits
> reservation fixes for extent file writepage"
> ee12b630687d510f6f4b6d4acdc4e267fd4adeda
>
> Ideally we would use the "path" information to generate an accurate block
> count for this extent. Can we just return "ret" in this case?
>
I guess so a return ret is missing. If we have space in the leaf tree
then i guess we can safely add the extent information to the leaf and
update only bitmap and group descriptors.
-aneesh
prev parent reply other threads:[~2009-07-01 18:38 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-29 22:41 ext4_ext_calc_credits_for_single_extent() bug? Andreas Dilger
2009-07-01 18:38 ` Aneesh Kumar K.V [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090701183854.GC31235@skywalker \
--to=aneesh.kumar@linux.vnet.ibm.com \
--cc=adilger@sun.com \
--cc=cmm@us.ibm.com \
--cc=linux-ext4@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).