Patchwork [v1] ext3:Fix credits computing for ordered mode.

login
register
mail settings
Submitter Yongqiang Yang
Date March 24, 2011, 12:48 a.m.
Message ID <1300927719-27383-1-git-send-email-xiaoqiangnk@gmail.com>
Download mbox | patch
Permalink /patch/88130/
State Not Applicable
Headers show

Comments

Yongqiang Yang - March 24, 2011, 12:48 a.m.
Orginal computing ignores indirects themselves in ordered mode.

Signed-off-by:Yongqiang Yang <xiaoqiangnk@gmail.com>
---
 fs/ext3/inode.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Amir Goldstein - March 24, 2011, 4:49 a.m.
On Thu, Mar 24, 2011 at 2:48 AM, Yongqiang Yang <xiaoqiangnk@gmail.com> wrote:
> Orginal computing ignores indirects themselves in ordered mode.

On the worst case, data,ind,dind,tind all allocated from different bg
and different gdb
credits should be 2*4+4+2 for journaled and 2*4+3+2 for ordered (with
4K block: bpp = 1, indirects = 3)

Acked-by: Amir Goldstein <amir73il@users.sf.net>

>
> Signed-off-by:Yongqiang Yang <xiaoqiangnk@gmail.com>
> ---
>  fs/ext3/inode.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
> index ae94f6d..7f5db46 100644
> --- a/fs/ext3/inode.c
> +++ b/fs/ext3/inode.c
> @@ -3294,7 +3294,7 @@ static int ext3_writepage_trans_blocks(struct inode *inode)
>        if (ext3_should_journal_data(inode))
>                ret = 3 * (bpp + indirects) + 2;
>        else
> -               ret = 2 * (bpp + indirects) + 2;
> +               ret = 2 * (bpp + indirects) + indirects + 2;
>
>  #ifdef CONFIG_QUOTA
>        /* We know that structure was already allocated during dquot_initialize so
> --
> 1.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yongqiang Yang - March 24, 2011, 6:36 a.m.
On Thu, Mar 24, 2011 at 12:49 PM, Amir Goldstein <amir73il@gmail.com> wrote:
> On Thu, Mar 24, 2011 at 2:48 AM, Yongqiang Yang <xiaoqiangnk@gmail.com> wrote:
>> Orginal computing ignores indirects themselves in ordered mode.
>
> On the worst case, data,ind,dind,tind all allocated from different bg
> and different gdb
> credits should be 2*4+4+2 for journaled and 2*4+3+2 for ordered (with
> 4K block: bpp = 1, indirects = 3)
yes, on worst case, it should be
2*(bpp + indirects)[metadata:bitmap and gdb] +
indirects[metadata:themselves] + bpp[data] +  2[metadata:inode +
super] for journal mode
= 3 * (bpp + indirects) + 2

while it should be
2*(bpp + indirects)[metadata:bitmap and gdb] +
indirects[metadata:themselves] + 2[metadata:inode + super] for ordered
mode.
=2 * (bpp + indirects) + indirects + 2

>
> Acked-by: Amir Goldstein <amir73il@users.sf.net>
>
>>
>> Signed-off-by:Yongqiang Yang <xiaoqiangnk@gmail.com>
>> ---
>>  fs/ext3/inode.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
>> index ae94f6d..7f5db46 100644
>> --- a/fs/ext3/inode.c
>> +++ b/fs/ext3/inode.c
>> @@ -3294,7 +3294,7 @@ static int ext3_writepage_trans_blocks(struct inode *inode)
>>        if (ext3_should_journal_data(inode))
>>                ret = 3 * (bpp + indirects) + 2;
>>        else
>> -               ret = 2 * (bpp + indirects) + 2;
>> +               ret = 2 * (bpp + indirects) + indirects + 2;
>>
>>  #ifdef CONFIG_QUOTA
>>        /* We know that structure was already allocated during dquot_initialize so
>> --
>> 1.7.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
Jan Kara - March 24, 2011, 11:33 a.m.
On Thu 24-03-11 08:48:39, Yongqiang Yang wrote:
> Orginal computing ignores indirects themselves in ordered mode.
  Thanks. Merged into my tree.

								Honza
> 
> Signed-off-by:Yongqiang Yang <xiaoqiangnk@gmail.com>
> ---
>  fs/ext3/inode.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
> index ae94f6d..7f5db46 100644
> --- a/fs/ext3/inode.c
> +++ b/fs/ext3/inode.c
> @@ -3294,7 +3294,7 @@ static int ext3_writepage_trans_blocks(struct inode *inode)
>  	if (ext3_should_journal_data(inode))
>  		ret = 3 * (bpp + indirects) + 2;
>  	else
> -		ret = 2 * (bpp + indirects) + 2;
> +		ret = 2 * (bpp + indirects) + indirects + 2;
>  
>  #ifdef CONFIG_QUOTA
>  	/* We know that structure was already allocated during dquot_initialize so
> -- 
> 1.7.4
>

Patch

diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
index ae94f6d..7f5db46 100644
--- a/fs/ext3/inode.c
+++ b/fs/ext3/inode.c
@@ -3294,7 +3294,7 @@  static int ext3_writepage_trans_blocks(struct inode *inode)
 	if (ext3_should_journal_data(inode))
 		ret = 3 * (bpp + indirects) + 2;
 	else
-		ret = 2 * (bpp + indirects) + 2;
+		ret = 2 * (bpp + indirects) + indirects + 2;
 
 #ifdef CONFIG_QUOTA
 	/* We know that structure was already allocated during dquot_initialize so