summaryrefslogtreecommitdiffstats
path: root/fs/ext4
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2010-07-29 21:06:10 +0200
committerTheodore Ts'o <tytso@mit.edu>2010-07-29 21:06:10 +0200
commit4538821993f4486c76090dfb377c60c0a0e71ba3 (patch)
treed196075a963896c25df9ceb983a19ce82f5eab9b /fs/ext4
parentext4: check to make make sure bd_dev is set before dereferencing it (diff)
downloadlinux-4538821993f4486c76090dfb377c60c0a0e71ba3.tar.xz
linux-4538821993f4486c76090dfb377c60c0a0e71ba3.zip
ext4: drop inode from orphan list if ext4_delete_inode() fails
There were some error paths in ext4_delete_inode() which was not dropping the inode from the orphan list. This could lead to a BUG_ON on umount when the orphan list is discovered to be non-empty. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/inode.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index a52d5af99187..533b607f9cb5 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -221,6 +221,7 @@ void ext4_delete_inode(struct inode *inode)
"couldn't extend journal (err %d)", err);
stop_handle:
ext4_journal_stop(handle);
+ ext4_orphan_del(NULL, inode);
goto no_delete;
}
}