Re: dm-writecache: fix compilation issue with !DAX

From: Mike Snitzer
Date: Tue May 29 2018 - 15:57:48 EST


On Tue, May 29 2018 at 2:40pm -0400,
Dan Williams <dan.j.williams@xxxxxxxxx> wrote:

> On Tue, May 29, 2018 at 11:08 AM, Mike Snitzer <snitzer@xxxxxxxxxx> wrote:
> > On Tue, May 29 2018 at 1:52pm -0400,
> > Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx> wrote:
> >
> >> As reported by Arnd (https://lkml.org/lkml/2018/5/28/1697), dm-writecache
> >> will fail with link errors in configs where DAX isn't present:
> >>
> >> drivers/md/dm-writecache.o: In function `writecache_ctr':
> >> dm-writecache.c:(.text+0x1fdc): undefined reference to `dax_read_lock'
> >> dm-writecache.c:(.text+0x2004): undefined reference to `dax_direct_access'
> >> dm-writecache.c:(.text+0x21cc): undefined reference to `dax_read_unlock'
> >>
> >> Fix this by following the lead of the other DM modules and wrapping calls
> >> to the generic DAX code in #if IS_ENABLED(CONFIG_DAX_DRIVER) blocks.
> >>
> >> We also expand the failure case for the 'p' (persistent memory) flag so
> >> that fails on both architectures that don't support persistent memory and
> >> on kernels that don't have DAX support configured. This prevents us from
> >> ever hitting the BUG() in the persistent_memory_claim() stub.
> >>
> >> Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
> >> Reported-by: Arnd Bergmann <arnd@xxxxxxxx>
> >
> > Thanks, I've picked this up.
>
> ...I assume you're also going to let the 'pmem api' discussion resolve
> before this all goes upstream?

Yeah, I'm going to pivot back to that and put time to it shortly. If
dm-writecache has to wait another cycle (so 4.19 inclusion), while
unfortunate, it wouldn't be the end of the world.

I look forward to your continued help, thanks.
Mike