Patchwork [03/28] ext4: ext4_mkdir should dirty dir_block with the parent inode

login
register
mail settings
Submitter Darrick J. Wong
Date Oct. 8, 2011, 7:54 a.m.
Message ID <20111008075403.20506.36338.stgit@elm3c44.beaverton.ibm.com>
Download mbox | patch
Permalink /patch/118499/
State Superseded
Headers show

Comments

Darrick J. Wong - Oct. 8, 2011, 7:54 a.m.
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 <djwong@us.ibm.com>
---
 fs/ext4/namei.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)



--
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
Tao Ma - Oct. 18, 2011, 4:11 a.m.
Hi Darrick,
On 10/08/2011 03:54 PM, 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.
could you please re-send this patch and other fixes that isn't related
to metadata checksum? I need this when implementing inlined dir, and I
guess this can be merged in this merge window.

Thanks
Tao
> 
> Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
> ---
>  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 6d3fab4..50c7294 100644
> --- a/fs/ext4/namei.c
> +++ b/fs/ext4/namei.c
> @@ -1863,7 +1863,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-fsdevel" 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
Darrick J. Wong - Oct. 21, 2011, 9:15 p.m.
On Tue, Oct 18, 2011 at 12:11:47PM +0800, Tao Ma wrote:
> Hi Darrick,
> On 10/08/2011 03:54 PM, 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.
> could you please re-send this patch and other fixes that isn't related
> to metadata checksum? I need this when implementing inlined dir, and I
> guess this can be merged in this merge window.

Just FYI it's patches 1-5 of this patchset, but I'm happy to resend.

--D
> 
> Thanks
> Tao
> > 
> > Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
> > ---
> >  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 6d3fab4..50c7294 100644
> > --- a/fs/ext4/namei.c
> > +++ b/fs/ext4/namei.c
> > @@ -1863,7 +1863,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-fsdevel" 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

Patch

diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 6d3fab4..50c7294 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -1863,7 +1863,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);