diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-09 12:51:21 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-09 12:51:21 -0800 |
commit | ac69e0928054ff29a5049902fb477f9c7605c773 (patch) | |
tree | 05be6b9285186823452e0adeffe40e1dfee6e354 /fs/ext3/ialloc.c | |
parent | 9e203936eac786f9268d6a13e6442d2accef1829 (diff) | |
parent | 302bf2f3259948c93361d501b04a5ed69c3bd4f8 (diff) | |
download | op-kernel-dev-ac69e0928054ff29a5049902fb477f9c7605c773.zip op-kernel-dev-ac69e0928054ff29a5049902fb477f9c7605c773.tar.gz |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
ext2/3/4: delete unneeded includes of module.h
ext{3,4}: Fix potential race when setversion ioctl updates inode
udf: Mark LVID buffer as uptodate before marking it dirty
ext3: Don't warn from writepage when readonly inode is spotted after error
jbd: Remove j_barrier mutex
reiserfs: Force inode evictions before umount to avoid crash
reiserfs: Fix quota mount option parsing
udf: Treat symlink component of type 2 as /
udf: Fix deadlock when converting file from in-ICB one to normal one
udf: Cleanup calling convention of inode_getblk()
ext2: Fix error handling on inode bitmap corruption
ext3: Fix error handling on inode bitmap corruption
ext3: replace ll_rw_block with other functions
ext3: NULL dereference in ext3_evict_inode()
jbd: clear revoked flag on buffers before a new transaction started
ext3: call ext3_mark_recovery_complete() when recovery is really needed
Diffstat (limited to 'fs/ext3/ialloc.c')
-rw-r--r-- | fs/ext3/ialloc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c index 92cc86d..1cde284 100644 --- a/fs/ext3/ialloc.c +++ b/fs/ext3/ialloc.c @@ -525,8 +525,12 @@ got: if (IS_DIRSYNC(inode)) handle->h_sync = 1; 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++; |