From: Mingming Cao <cmm@us.ibm.com>

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

_