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");
}