Hi,

It looks like the reason for this bug might be the recent change in fs/inode.c [0]. According to the comments in this patch, the filesystems which implement the delete_inode callback must now also call truncate_inode_pages before clearing the inode. The attached patch implements this change. I was only able to make sure that modified lufs kernel module builds and loads, it would be great if someone would do some real-life testing with it.

[0] http://www.linuxhq.com/kernel/v2.6/14/fs/inode.c

Best regards,

Jurij Smakov                                        [EMAIL PROTECTED]
Key: http://www.wooyd.org/pgpkey/                   KeyID: C99E03CC
diff -aur a/kernel/Linux/2.6/inode.c b/kernel/Linux/2.6/inode.c
--- a/kernel/Linux/2.6/inode.c  2003-03-08 13:45:30.000000000 -0800
+++ b/kernel/Linux/2.6/inode.c  2006-01-24 23:25:51.000000000 -0800
@@ -25,6 +25,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/fs.h>
+#include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/list.h>
 #include <linux/smp_lock.h>
@@ -421,6 +422,7 @@
 static void lu_delete_inode(struct inode *in)
 {
     TRACE("in\n");
+    truncate_inode_pages(&in->i_data, 0);
     clear_inode(in);
     TRACE("out\n");
 }

Reply via email to