I've got NULL-pointer dereference in __mark_inode_dirty() on chmod() for MTD device node. wb->bdi was NULL in this case. During investigation I've found that MTD subsystem rewrites file->f_mapping->backing_dev_info on openning to get mmap() work on MMU-less systems. But in fact it rewrites inode->i_mapping->backing_dev_info too, since inode->i_mapping == file->f_mapping (see __dentry_open() in fs/open.c). It breaks writeback of inode changes. I guess the right way to fix this is changing of __dentry_open() to create _copy_ of i_mapping to assign to f_mapping since in common case f_mapping != i_mapping. But I'm not sure were the copy should be freed. What do you think? -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html