ext4: Fix fs corruption when make_indexed_dir() fails
authorJan Kara <jack@suse.cz>
Tue, 3 May 2011 15:05:55 +0000 (11:05 -0400)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Mon, 10 Feb 2014 21:11:28 +0000 (16:11 -0500)
commit20341d16ad9e8df56cbeac40471a6883ca60d751
treeef084cfa78a1c75a7bd9e32b03920131b0b4ef0a
parent9e1326beaffcf5ccd9f177e1c8d45e5925637fab
ext4: Fix fs corruption when make_indexed_dir() fails

commit 7ad8e4e6ae2a7c95445ee1715b1714106fb95037 upstream.

When make_indexed_dir() fails (e.g. because of ENOSPC) after it has
allocated block for index tree root, we did not properly mark all
changed buffers dirty.  This lead to only some of these buffers being
written out and thus effectively corrupting the directory.

Fix the issue by marking all changed data dirty even in the error
failure case.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
fs/ext4/namei.c