Re: [PATCH v2 2/5] ext4: call dax_get_unmapped_area() for DAX pmd mappings

From: Toshi Kani
Date: Wed Apr 13 2016 - 15:01:20 EST


On Wed, 2016-04-13 at 14:22 -0400, Matthew Wilcox wrote:
> On Wed, Apr 13, 2016 at 09:08:36AM -0600, Toshi Kani wrote:
> >
> > >
> > > Could you do something like:
> > >
> > > Â#ifdef CONFIG_FS_DAX
> > > Âstruct page *read_dax_sector(struct block_device *bdev, sector_t n);
> > > +unsigned long dax_get_unmapped_area(struct file *filp, unsigned long
> > > addr,
> > > +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂunsigned long len, unsigned long pgoff, unsigned long
> > > flags);
> > > Â#else
> > > Âstatic inline struct page *read_dax_sector(struct block_device
> > > *bdev,
> > > ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂsector_t n)
> > > Â{
> > > ÂÂÂÂÂÂÂÂÂreturn ERR_PTR(-ENXIO);
> > > Â}
> > > +#define dax_get_unmapped_area NULL
> > > Â#endif
> > >
> > > in patch 1/5.ÂÂThen there's no need for the ifdefs in each
> > > filesystem.
> >
> > I thought about it, but I do not think we can use an inline function to
> > an entry point.
>
> That's not an inline function.ÂÂIt's just NULL.ÂÂSo after the
> preprocessor is done with it, it just looks like:
>
> .get_unmapped_area = NULL,
>
> and it won't be called by get_unmapped_area().

Oh, I see. Good idea. I will do that.

Thanks,
-Toshi