diff mbox

dax: fix FS_DAX=n BLOCK=y compilation

Message ID 150445955491.4453.8477796864040491127.stgit@dwillia2-desk3.amr.corp.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Williams Sept. 3, 2017, 5:25 p.m. UTC
The 0day kbuild robot reports:

>> drivers//dax/super.c:64:20: error: redefinition of 'fs_dax_get_by_bdev'
    struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
                       ^~~~~~~~~~~~~~~~~~
   In file included from drivers//dax/super.c:22:0:
   include/linux/dax.h:76:34: note: previous definition of 'fs_dax_get_by_bdev' was here
    static inline struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
                                     ^~~~~~~~~~~~~~~~~~

Protect the definition of fs_dax_get_by_bdev() in drivers/dax/super.c
with an ifdef.

Fixes: 78f354735081 ("dax: introduce a fs_dax_get_by_bdev() helper")
Cc: Jan Kara <jack@suse.cz>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Darrick J. Wong <darrick.wong@oracle.com>
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---
 drivers/dax/super.c |    2 ++
 1 file changed, 2 insertions(+)

Comments

Jan Kara Sept. 4, 2017, 10:26 a.m. UTC | #1
On Sun 03-09-17 10:25:55, Dan Williams wrote:
> The 0day kbuild robot reports:
> 
> >> drivers//dax/super.c:64:20: error: redefinition of 'fs_dax_get_by_bdev'
>     struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
>                        ^~~~~~~~~~~~~~~~~~
>    In file included from drivers//dax/super.c:22:0:
>    include/linux/dax.h:76:34: note: previous definition of 'fs_dax_get_by_bdev' was here
>     static inline struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
>                                      ^~~~~~~~~~~~~~~~~~
> 
> Protect the definition of fs_dax_get_by_bdev() in drivers/dax/super.c
> with an ifdef.
> 
> Fixes: 78f354735081 ("dax: introduce a fs_dax_get_by_bdev() helper")
> Cc: Jan Kara <jack@suse.cz>
> Cc: Christoph Hellwig <hch@lst.de>
> Cc: Darrick J. Wong <darrick.wong@oracle.com>
> Reported-by: kbuild test robot <fengguang.wu@intel.com>
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>

OK, or you could have both !DAX and DAX implementations in
include/linux/dax.h as inline together? It would look a bit more logical to
me. But I don't care much. So

Reviewed-by: Jan Kara <jack@suse.cz>

							Honza


> ---
>  drivers/dax/super.c |    2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> index b699aac268a6..3600ff786646 100644
> --- a/drivers/dax/super.c
> +++ b/drivers/dax/super.c
> @@ -61,6 +61,7 @@ int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
>  }
>  EXPORT_SYMBOL(bdev_dax_pgoff);
>  
> +#if IS_ENABLED(CONFIG_FS_DAX)
>  struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
>  {
>  	if (!blk_queue_dax(bdev->bd_queue))
> @@ -68,6 +69,7 @@ struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
>  	return fs_dax_get_by_host(bdev->bd_disk->disk_name);
>  }
>  EXPORT_SYMBOL_GPL(fs_dax_get_by_bdev);
> +#endif
>  
>  /**
>   * __bdev_dax_supported() - Check if the device supports dax for filesystem
>
Dan Williams Sept. 4, 2017, 3:55 p.m. UTC | #2
On Mon, Sep 4, 2017 at 3:26 AM, Jan Kara <jack@suse.cz> wrote:
> On Sun 03-09-17 10:25:55, Dan Williams wrote:
>> The 0day kbuild robot reports:
>>
>> >> drivers//dax/super.c:64:20: error: redefinition of 'fs_dax_get_by_bdev'
>>     struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
>>                        ^~~~~~~~~~~~~~~~~~
>>    In file included from drivers//dax/super.c:22:0:
>>    include/linux/dax.h:76:34: note: previous definition of 'fs_dax_get_by_bdev' was here
>>     static inline struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
>>                                      ^~~~~~~~~~~~~~~~~~
>>
>> Protect the definition of fs_dax_get_by_bdev() in drivers/dax/super.c
>> with an ifdef.
>>
>> Fixes: 78f354735081 ("dax: introduce a fs_dax_get_by_bdev() helper")
>> Cc: Jan Kara <jack@suse.cz>
>> Cc: Christoph Hellwig <hch@lst.de>
>> Cc: Darrick J. Wong <darrick.wong@oracle.com>
>> Reported-by: kbuild test robot <fengguang.wu@intel.com>
>> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
>
> OK, or you could have both !DAX and DAX implementations in
> include/linux/dax.h as inline together? It would look a bit more logical to
> me. But I don't care much. So
>
> Reviewed-by: Jan Kara <jack@suse.cz>

My motivation for not doing that is to avoid including blkdev.h from dax.h.
Jan Kara Sept. 4, 2017, 4:03 p.m. UTC | #3
On Mon 04-09-17 08:55:33, Dan Williams wrote:
> On Mon, Sep 4, 2017 at 3:26 AM, Jan Kara <jack@suse.cz> wrote:
> > On Sun 03-09-17 10:25:55, Dan Williams wrote:
> >> The 0day kbuild robot reports:
> >>
> >> >> drivers//dax/super.c:64:20: error: redefinition of 'fs_dax_get_by_bdev'
> >>     struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
> >>                        ^~~~~~~~~~~~~~~~~~
> >>    In file included from drivers//dax/super.c:22:0:
> >>    include/linux/dax.h:76:34: note: previous definition of 'fs_dax_get_by_bdev' was here
> >>     static inline struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
> >>                                      ^~~~~~~~~~~~~~~~~~
> >>
> >> Protect the definition of fs_dax_get_by_bdev() in drivers/dax/super.c
> >> with an ifdef.
> >>
> >> Fixes: 78f354735081 ("dax: introduce a fs_dax_get_by_bdev() helper")
> >> Cc: Jan Kara <jack@suse.cz>
> >> Cc: Christoph Hellwig <hch@lst.de>
> >> Cc: Darrick J. Wong <darrick.wong@oracle.com>
> >> Reported-by: kbuild test robot <fengguang.wu@intel.com>
> >> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
> >
> > OK, or you could have both !DAX and DAX implementations in
> > include/linux/dax.h as inline together? It would look a bit more logical to
> > me. But I don't care much. So
> >
> > Reviewed-by: Jan Kara <jack@suse.cz>
> 
> My motivation for not doing that is to avoid including blkdev.h from dax.h.

OK, makes sense.

								Honza
diff mbox

Patch

diff --git a/drivers/dax/super.c b/drivers/dax/super.c
index b699aac268a6..3600ff786646 100644
--- a/drivers/dax/super.c
+++ b/drivers/dax/super.c
@@ -61,6 +61,7 @@  int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
 }
 EXPORT_SYMBOL(bdev_dax_pgoff);
 
+#if IS_ENABLED(CONFIG_FS_DAX)
 struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
 {
 	if (!blk_queue_dax(bdev->bd_queue))
@@ -68,6 +69,7 @@  struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
 	return fs_dax_get_by_host(bdev->bd_disk->disk_name);
 }
 EXPORT_SYMBOL_GPL(fs_dax_get_by_bdev);
+#endif
 
 /**
  * __bdev_dax_supported() - Check if the device supports dax for filesystem