On Wed, 15 Jan 2014, Matthew Wilcox wrote: > +#ifdef CONFIG_FS_XIP > +const struct file_operations ext4_xip_file_operations = { > + .llseek = ext4_llseek, > + .read = do_sync_read, > + .write = do_sync_write, I think we may always need to define ext2_xip_file_operations and ext4_xip_file_operations, even if we have XIP compiled out. We make the decision on which file operations table to use at runtime: from ext4_iget: if (test_opt(inode->i_sb, XIP)) inode->i_fop = &ext4_xip_file_operations; else inode->i_fop = &ext4_file_operations; With CONFIG_FS_XIP undefined, we get a compile error: ERROR: "ext4_xip_file_operations" [fs/ext4/ext4.ko] undefined! ERROR: "ext2_xip_file_operations" [fs/ext2/ext2.ko] undefined! My guess is that with the old ext2 XIP code and with the first pass of the ext4 XIP code, we weren't seeing this because the uses of the xip file operations table were optimized out, removing the undefined symbol? - Ross -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>