From: Mingming Cao Thanks Badari!! The easiest fix is checking whether it is a bad inode in ext3_clear_inode() (like what ext2_put_inode() does): --- 25-akpm/fs/ext3/super.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN fs/ext3/super.c~ext3-reservation-bad-inode-fix fs/ext3/super.c --- 25/fs/ext3/super.c~ext3-reservation-bad-inode-fix 2004-05-03 18:10:50.790725632 -0700 +++ 25-akpm/fs/ext3/super.c 2004-05-03 18:10:50.795724872 -0700 @@ -507,7 +507,8 @@ static void ext3_clear_inode(struct inod EXT3_I(inode)->i_default_acl = EXT3_ACL_NOT_CACHED; } #endif - ext3_discard_reservation(inode); + if (!is_bad_inode(inode)) + ext3_discard_reservation(inode); } #ifdef CONFIG_QUOTA _