From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de ([195.135.220.15]:39611 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965350AbdAKIP1 (ORCPT ); Wed, 11 Jan 2017 03:15:27 -0500 Date: Wed, 11 Jan 2017 09:15:23 +0100 From: Jan Kara To: Ross Zwisler Cc: Andrew Morton , linux-kernel@vger.kernel.org, "Darrick J. Wong" , Theodore Ts'o , Alexander Viro , Andreas Dilger , Christoph Hellwig , Dan Williams , Jan Kara , Matthew Wilcox , linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-nvdimm@lists.01.org, Arnd Bergmann Subject: Re: [PATCH] dax: fix build warnings with FS_DAX and !FS_IOMAP Message-ID: <20170111081523.GA16116@quack2.suse.cz> References: <1946137.McqY686LOu@wuerfel> <1484087383-29478-1-git-send-email-ross.zwisler@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1484087383-29478-1-git-send-email-ross.zwisler@linux.intel.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: 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 > Reported-by: Arnd Bergmann > Cc: Jan Kara > Cc: Christoph Hellwig Looks good. I agree that DAX without FS_IOMAP does not make sense. You can add: Reviewed-by: Jan Kara 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 SUSE Labs, CR