2011-08-17 03:39:56

by djwong

[permalink] [raw]
Subject: [PATCH] ext4: ext4_mkdir should dirty dir_block with the parent inode

ext4_mkdir calls ext4_handle_dirty_metadata with dir_block and the inode "dir".
Unfortunately, dir_block belongs to the newly created directory (which is
"inode"), not the parent directory (which is "dir"). Fix the incorrect
association.

Signed-off-by: Darrick J. Wong <[email protected]>
---

fs/ext4/namei.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 2b5c34b..a2c2855 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -1866,7 +1866,7 @@ retry:
ext4_set_de_type(dir->i_sb, de, S_IFDIR);
inode->i_nlink = 2;
BUFFER_TRACE(dir_block, "call ext4_handle_dirty_metadata");
- err = ext4_handle_dirty_metadata(handle, dir, dir_block);
+ err = ext4_handle_dirty_metadata(handle, inode, dir_block);
if (err)
goto out_clear_inode;
err = ext4_mark_inode_dirty(handle, inode);


2011-09-30 19:45:41

by djwong

[permalink] [raw]
Subject: Re: [PATCH] ext4: ext4_mkdir should dirty dir_block with the parent inode

On Tue, Aug 16, 2011 at 08:39:54PM -0700, Darrick J. Wong wrote:
> ext4_mkdir calls ext4_handle_dirty_metadata with dir_block and the inode "dir".
> Unfortunately, dir_block belongs to the newly created directory (which is
> "inode"), not the parent directory (which is "dir"). Fix the incorrect
> association.

Any thoughts about this one, Ted?

--D
>
> Signed-off-by: Darrick J. Wong <[email protected]>
> ---
>
> fs/ext4/namei.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
> index 2b5c34b..a2c2855 100644
> --- a/fs/ext4/namei.c
> +++ b/fs/ext4/namei.c
> @@ -1866,7 +1866,7 @@ retry:
> ext4_set_de_type(dir->i_sb, de, S_IFDIR);
> inode->i_nlink = 2;
> BUFFER_TRACE(dir_block, "call ext4_handle_dirty_metadata");
> - err = ext4_handle_dirty_metadata(handle, dir, dir_block);
> + err = ext4_handle_dirty_metadata(handle, inode, dir_block);
> if (err)
> goto out_clear_inode;
> err = ext4_mark_inode_dirty(handle, inode);
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html