ext4: replace BUG() with return -EIO in ext4_ext_get_blocks
authorSurbhi Palande <surbhi.palande@canonical.com>
Mon, 31 May 2010 02:49:16 +0000 (22:49 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 2 Aug 2010 17:21:10 +0000 (10:21 -0700)
commitb235a77c0fb44fd428525591a968da14844b6f4d
treee90467c9db17e06c249e62510465a34e452c47a6
parente1d532a22026a3ef767b2463c299d2a6451e8aee
ext4: replace BUG() with return -EIO in ext4_ext_get_blocks

commit 034fb4c95fc0fed4ec4a50778127b92c6f2aec01 upstream (as of v2.6.33-rc3)

This patch fixes the Kernel BZ #14286.  When the address of an extent
corresponding to a valid block is corrupted, a -EIO should be reported
instead of a BUG().  This situation should not normally not occur
except in the case of a corrupted filesystem.  If however it does,
then the system should not panic directly but depending on the mount
time options appropriate action should be taken. If the mount options
so permit, the I/O should be gracefully aborted by returning a -EIO.

http://bugzilla.kernel.org/show_bug.cgi?id=14286

Signed-off-by: Surbhi Palande <surbhi.palande@canonical.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/ext4/extents.c