From: Darrick J. Wong Date: Wed, 31 Aug 2011 16:00:51 +0000 (-0400) Subject: ext4: ext4_mkdir should dirty dir_block with newly created directory inode X-Git-Tag: v3.1.1~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=523d90b566448dd9ca31b0a93b3cf9f601118d5c;p=thirdparty%2Fkernel%2Fstable.git ext4: ext4_mkdir should dirty dir_block with newly created directory inode commit f9287c1f2d329f4d78a3bbc9cf0db0ebae6f146a upstream. 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 Signed-off-by: "Theodore Ts'o" Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 46df9a984bbf2..6e7779c75324e 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);