ext4: fix error handling on inode bitmap corruption
commit1a28fbbebe6bd7e3f0338663302b3b3ce500e088
authorJan Kara <jack@suse.cz>
Sun, 18 Dec 2011 22:37:02 +0000 (18 17:37 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 21 May 2012 16:40:04 +0000 (21 09:40 -0700)
tree98279af6779360496ef7a93e6e85f03a25026dbc
parent8e8a21270cbfc41bf3bf2e014b99dc113ba554ec
ext4: fix error handling on inode bitmap corruption

commit acd6ad83517639e8f09a8c5525b1dccd81cd2a10 upstream.

When insert_inode_locked() fails in ext4_new_inode() it most likely means inode
bitmap got corrupted and we allocated again inode which is already in use. Also
doing unlock_new_inode() during error recovery is wrong since the inode does
not have I_NEW set. Fix the problem by jumping to fail: (instead of fail_drop:)
which declares filesystem error and does not call unlock_new_inode().

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/ialloc.c