Re: [PATCH v5 19/22] ext4: Add XIP functionality

From: Ross Zwisler
Date: Thu Jan 16 2014 - 19:00:28 EST


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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/