diff options
author | Josh Boyer <jwboyer@redhat.com> | 2012-01-10 14:08:28 -0500 |
---|---|---|
committer | Josh Boyer <jwboyer@redhat.com> | 2012-01-10 14:11:29 -0500 |
commit | a5827f34f196636d6d3e42f48f9f463aa87ce3d7 (patch) | |
tree | 2ac2782f91beb9c1bb55eca40c4369e3fe5e30b7 /ext4-Fix-error-handling-on-inode-bitmap-corruption.patch | |
parent | 8aec6133a3e9ff642bb04ec52e5e86b03872c16c (diff) | |
download | kernel-a5827f34f196636d6d3e42f48f9f463aa87ce3d7.tar.gz kernel-a5827f34f196636d6d3e42f48f9f463aa87ce3d7.tar.xz kernel-a5827f34f196636d6d3e42f48f9f463aa87ce3d7.zip |
Fix ext4 corrupted bitmap error path (pointed out by Eric Sandeen)
Diffstat (limited to 'ext4-Fix-error-handling-on-inode-bitmap-corruption.patch')
-rw-r--r-- | ext4-Fix-error-handling-on-inode-bitmap-corruption.patch | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ext4-Fix-error-handling-on-inode-bitmap-corruption.patch b/ext4-Fix-error-handling-on-inode-bitmap-corruption.patch new file mode 100644 index 000000000..e22a2b4ff --- /dev/null +++ b/ext4-Fix-error-handling-on-inode-bitmap-corruption.patch @@ -0,0 +1,19 @@ +diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c +index 00beb4f..8fb6844 100644 +--- a/fs/ext4/ialloc.c ++++ b/fs/ext4/ialloc.c +@@ -885,8 +885,12 @@ got: + if (IS_DIRSYNC(inode)) + ext4_handle_sync(handle); + if (insert_inode_locked(inode) < 0) { +- err = -EINVAL; +- goto fail_drop; ++ /* ++ * Likely a bitmap corruption causing inode to be allocated ++ * twice. ++ */ ++ err = -EIO; ++ goto fail; + } + spin_lock(&sbi->s_next_gen_lock); + inode->i_generation = sbi->s_next_generation++; |