From: Jan Kara Date: Wed, 13 Mar 2013 11:57:08 +0000 (+0100) Subject: ext2: Fix BUG_ON in evict() on inode deletion X-Git-Tag: v3.9-rc3~14^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c288d2969627be7ffc90904ac8c6aae0295fbf9f;p=pandora-kernel.git ext2: Fix BUG_ON in evict() on inode deletion Commit 8e3dffc6 introduced a regression where deleting inode with large extended attributes leads to triggering BUG_ON(inode->i_state != (I_FREEING | I_CLEAR)) in fs/inode.c:evict(). That happens because freeing of xattr block dirtied the inode and it happened after clear_inode() has been called. Fix the issue by moving removal of xattr block into ext2_evict_inode() before clear_inode() call close to a place where data blocks are truncated. That is also more logical place and removes surprising requirement that ext2_free_blocks() mustn't dirty the inode. Reported-by: Tyler Hicks Signed-off-by: Jan Kara --- Reading git-diff-tree failed