ext4: Fix lack of credits BUG() when deleting a badly fragmented inode
authorTheodore Ts'o <tytso@mit.edu>
Sun, 3 Aug 2008 01:10:38 +0000 (21:10 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 3 Aug 2008 01:10:38 +0000 (21:10 -0400)
commitbc965ab3f2b4b7bb898b11d61d25295c2053b8ac
tree7f8cbd4e5d9c2a4e63fb35d5444f77bfb667c00f
parent0123c93998511978556b03d2bb023af92aa24d55
ext4: Fix lack of credits BUG() when deleting a badly fragmented inode

The extents codepath for ext4_truncate() requests journal transaction
credits in very small chunks, requesting only what is needed.  This
means there may not be enough credits left on the transaction handle
after ext4_truncate() returns and then when ext4_delete_inode() tries
finish up its work, it may not have enough transaction credits,
causing a BUG() oops in the jbd2 core.

Also, reserve an extra 2 blocks when starting an ext4_delete_inode()
since we need to update the inode bitmap, as well as update the
orphaned inode linked list.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/inode.c