Ok. I think I've found the solution. Thanks to szaka, poisan42 and hebb.
As mentioned in another thread, I had to do the steps below to resolve the problem. Step 1 doesn't seem to be required in my case.
So the problem is related to a data cache bug in the kernel (I'm using 2.6.15) that affects MIPS platforms as well as ARM.
See
http://forum.ntfs-3g.org/viewtopic.php?t=115 for the full thread.
2. In fuse/kernel/fuse_i.h, enable the line #define DCACHE_BUG
3. In fuse/kernel/dev.c, modify as below.
// Before
#ifdef DCACHE_BUG
flush_cache_page(vma, cs->addr, page_to_pfn(cs->pg));
#endif
// After
#ifdef DCACHE_BUG
r4k_flush_cache_page(vma, cs->addr, page_to_pfn(cs->pg));
#endif
4. Modify the kernel source in linux/arch/mips/mm/c-r4k.c
// Before
static void r4k_flush_cache_page(struct vm_area_struct *vma, unsigned long page, unsigned long pfn)
{
...
}
// After
void r4k_flush_cache_page(struct vm_area_struct *vma, unsigned long page, unsigned long pfn)
{
...
}
EXPORT_SYMBOL(r4k_flush_cache_page);