--- /dev/null
+diff -Nurb linux-2.6.22-20/fs/inode.c linux-2.6.22-40/fs/inode.c
+--- linux-2.6.22-20/fs/inode.c 2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22-40/fs/inode.c 2008-04-03 16:41:53.000000000 -0400
+@@ -122,6 +122,7 @@
+ inode->i_fop = &empty_fops;
+ inode->i_nlink = 1;
+ atomic_set(&inode->i_writecount, 0);
++ mutex_init(&inode->i_mutex);
+ inode->i_size = 0;
+ inode->i_blocks = 0;
+ inode->i_bytes = 0;
+@@ -1102,6 +1103,7 @@
+
+ if (op && op->drop_inode)
+ drop = op->drop_inode;
++ BUG_ON(atomic_read(&inode->i_mutex.count)!=1);
+ drop(inode);
+ }
+