On Tue 10-01-17 15:29:43, Ross Zwisler wrote: > As reported by Arnd: > > https://lkml.org/lkml/2017/1/10/756 > > Compiling with the following configuration: > > # CONFIG_EXT2_FS is not set > # CONFIG_EXT4_FS is not set > # CONFIG_XFS_FS is not set > # CONFIG_FS_IOMAP depends on the above filesystems, as is not set > CONFIG_FS_DAX=y > > generates build warnings about unused functions in fs/dax.c: > > fs/dax.c:878:12: warning: ‘dax_insert_mapping’ defined but not used [-Wunused-function] > static int dax_insert_mapping(struct address_space *mapping, > ^~~~~~~~~~~~~~~~~~ > fs/dax.c:572:12: warning: ‘copy_user_dax’ defined but not used [-Wunused-function] > static int copy_user_dax(struct block_device *bdev, sector_t sector, size_t size, > ^~~~~~~~~~~~~ > fs/dax.c:542:12: warning: ‘dax_load_hole’ defined but not used [-Wunused-function] > static int dax_load_hole(struct address_space *mapping, void **entry, > ^~~~~~~~~~~~~ > fs/dax.c:312:14: warning: ‘grab_mapping_entry’ defined but not used [-Wunused-function] > static void *grab_mapping_entry(struct address_space *mapping, pgoff_t index, > ^~~~~~~~~~~~~~~~~~ > > Now that the struct buffer_head based DAX fault paths and I/O path have > been removed we really depend on iomap support being present for DAX. Make > this explicit by selecting FS_IOMAP if we compile in DAX support. > > This allows us to remove conditional selections of FS_IOMAP when FS_DAX was > present for ext2 and ext4, and to remove an #ifdef in fs/dax.c. > > Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx> > Reported-by: Arnd Bergmann <arnd@xxxxxxxx> > Cc: Jan Kara <jack@xxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> Looks good. I agree that DAX without FS_IOMAP does not make sense. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/Kconfig | 1 + > fs/dax.c | 2 -- > fs/ext2/Kconfig | 1 - > fs/ext4/Kconfig | 1 - > 4 files changed, 1 insertion(+), 4 deletions(-) > > diff --git a/fs/Kconfig b/fs/Kconfig > index c2a377c..83eab52 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -38,6 +38,7 @@ config FS_DAX > bool "Direct Access (DAX) support" > depends on MMU > depends on !(ARM || MIPS || SPARC) > + select FS_IOMAP > help > Direct Access (DAX) can be used on memory-backed block devices. > If the block device supports DAX and the filesystem supports DAX, > diff --git a/fs/dax.c b/fs/dax.c > index 5c74f60..083b950 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -969,7 +969,6 @@ int __dax_zero_page_range(struct block_device *bdev, sector_t sector, > } > EXPORT_SYMBOL_GPL(__dax_zero_page_range); > > -#ifdef CONFIG_FS_IOMAP > static sector_t dax_iomap_sector(struct iomap *iomap, loff_t pos) > { > return iomap->blkno + (((pos & PAGE_MASK) - iomap->offset) >> 9); > @@ -1407,4 +1406,3 @@ int dax_iomap_pmd_fault(struct vm_area_struct *vma, unsigned long address, > } > EXPORT_SYMBOL_GPL(dax_iomap_pmd_fault); > #endif /* CONFIG_FS_DAX_PMD */ > -#endif /* CONFIG_FS_IOMAP */ > diff --git a/fs/ext2/Kconfig b/fs/ext2/Kconfig > index 36bea5a..c634874e 100644 > --- a/fs/ext2/Kconfig > +++ b/fs/ext2/Kconfig > @@ -1,6 +1,5 @@ > config EXT2_FS > tristate "Second extended fs support" > - select FS_IOMAP if FS_DAX > help > Ext2 is a standard Linux file system for hard disks. > > diff --git a/fs/ext4/Kconfig b/fs/ext4/Kconfig > index 7b90691..e38039f 100644 > --- a/fs/ext4/Kconfig > +++ b/fs/ext4/Kconfig > @@ -37,7 +37,6 @@ config EXT4_FS > select CRC16 > select CRYPTO > select CRYPTO_CRC32C > - select FS_IOMAP if FS_DAX > help > This is the next generation of the ext3 filesystem. > > -- > 2.7.4 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR -- 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