ext2: fix FS_IOMAP dependency

Message ID 20180228133659.1933887-1-arnd@arndb.de
State Not Applicable, archived
Headers show
Series
  • ext2: fix FS_IOMAP dependency
Related show

Commit Message

Arnd Bergmann Feb. 28, 2018, 1:36 p.m.
I ran into a randconfig link error on next-20180228 that appears to have
been caused by an older patch:

fs/ext2/inode.o: In function `ext2_setattr':
inode.c:(.text+0x19eb): undefined reference to `iomap_zero_range'

This adds a compile-time conditional around the code path so the
compiler can optimize out the reference in configurations that don't
need it anyway.

Fixes: 00697eed386d ("ext2: use iomap_zero_range() for zeroing truncated page in DAX path")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 fs/ext2/inode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jan Kara Feb. 28, 2018, 4:28 p.m. | #1
On Wed 28-02-18 14:36:46, Arnd Bergmann wrote:
> I ran into a randconfig link error on next-20180228 that appears to have
> been caused by an older patch:
> 
> fs/ext2/inode.o: In function `ext2_setattr':
> inode.c:(.text+0x19eb): undefined reference to `iomap_zero_range'
> 
> This adds a compile-time conditional around the code path so the
> compiler can optimize out the reference in configurations that don't
> need it anyway.
> 
> Fixes: 00697eed386d ("ext2: use iomap_zero_range() for zeroing truncated page in DAX path")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Thanks for the patch but Dan's patches [1] deal with a breakage like this
in a more complete way so I'd prefer to go with his full series...

								Honza

[1] https://lkml.org/lkml/2018/2/26/1323

> ---
>  fs/ext2/inode.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
> index 5d5e9f7b98d6..6e6db0ab3bd6 100644
> --- a/fs/ext2/inode.c
> +++ b/fs/ext2/inode.c
> @@ -1296,7 +1296,7 @@ static int ext2_setsize(struct inode *inode, loff_t newsize)
>  
>  	inode_dio_wait(inode);
>  
> -	if (IS_DAX(inode)) {
> +	if (IS_ENABLED(CONFIG_FS_DAX) && IS_DAX(inode)) {
>  		error = iomap_zero_range(inode, newsize,
>  					 PAGE_ALIGN(newsize) - newsize, NULL,
>  					 &ext2_iomap_ops);
> -- 
> 2.9.0
> 
>

Patch

diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
index 5d5e9f7b98d6..6e6db0ab3bd6 100644
--- a/fs/ext2/inode.c
+++ b/fs/ext2/inode.c
@@ -1296,7 +1296,7 @@  static int ext2_setsize(struct inode *inode, loff_t newsize)
 
 	inode_dio_wait(inode);
 
-	if (IS_DAX(inode)) {
+	if (IS_ENABLED(CONFIG_FS_DAX) && IS_DAX(inode)) {
 		error = iomap_zero_range(inode, newsize,
 					 PAGE_ALIGN(newsize) - newsize, NULL,
 					 &ext2_iomap_ops);