2011-05-14 06:03:18

by Allison Henderson

[permalink] [raw]
Subject: [PATCH v2] ext4: ext4_ext_convert_to_initialized bug found in extended FSX testing

Hi all,

After applying this patch, the fsx test has been able to run ok all
day (about 12hrs). So I think it's safe to send it out now. Thx all!

Allison Henderson

Signed-off-by: Allison Henderson <[email protected]>

---
:100644 100644 e363f21... 5f243da... M fs/ext4/extents.c
fs/ext4/extents.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index e363f21..5f243da 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -2818,8 +2818,8 @@ static int ext4_ext_convert_to_initialized(handle_t *handle,
(EXT4_EXT_MAY_ZEROOUT & split_flag)) {
/* case 3 */
zero_ex.ee_block =
- cpu_to_le32(map->m_lblk + map->m_len);
- zero_ex.ee_len = cpu_to_le16(allocated - map->m_len);
+ cpu_to_le32(map->m_lblk);
+ zero_ex.ee_len = cpu_to_le16(allocated);
ext4_ext_store_pblock(&zero_ex,
ext4_ext_pblock(ex) + map->m_lblk - ee_block);
err = ext4_ext_zeroout(inode, &zero_ex);
@@ -2842,10 +2842,9 @@ static int ext4_ext_convert_to_initialized(handle_t *handle,
goto out;
}

- allocated = map->m_lblk - ee_block + map->m_len;


2011-05-16 15:09:43

by Mingming Cao

[permalink] [raw]
Subject: Re: [PATCH v2] ext4: ext4_ext_convert_to_initialized bug found in extended FSX testing

On Fri, 2011-05-13 at 23:03 -0700, Allison Henderson wrote:
> Hi all,
>
> After applying this patch, the fsx test has been able to run ok all
> day (about 12hrs). So I think it's safe to send it out now. Thx all!
>
> Allison Henderson
>
> Signed-off-by: Allison Henderson <[email protected]>

Looks good to me.

Reviewed-by: Mingming Cao <[email protected]>
>
> ---
> :100644 100644 e363f21... 5f243da... M fs/ext4/extents.c
> fs/ext4/extents.c | 9 ++++-----
> 1 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
> index e363f21..5f243da 100644
> --- a/fs/ext4/extents.c
> +++ b/fs/ext4/extents.c
> @@ -2818,8 +2818,8 @@ static int ext4_ext_convert_to_initialized(handle_t *handle,
> (EXT4_EXT_MAY_ZEROOUT & split_flag)) {
> /* case 3 */
> zero_ex.ee_block =
> - cpu_to_le32(map->m_lblk + map->m_len);
> - zero_ex.ee_len = cpu_to_le16(allocated - map->m_len);
> + cpu_to_le32(map->m_lblk);
> + zero_ex.ee_len = cpu_to_le16(allocated);
> ext4_ext_store_pblock(&zero_ex,
> ext4_ext_pblock(ex) + map->m_lblk - ee_block);
> err = ext4_ext_zeroout(inode, &zero_ex);
> @@ -2842,10 +2842,9 @@ static int ext4_ext_convert_to_initialized(handle_t *handle,
> goto out;
> }
>
> - allocated = map->m_lblk - ee_block + map->m_len;
> -
> split_map.m_lblk = ee_block;
> - split_map.m_len = allocated;
> + split_map.m_len = map->m_lblk - ee_block + map->m_len;
> + allocated = map->m_len;
> }
> }
>