Message ID | 20180404095427.2537184-1-arnd@arndb.de |
---|---|
State | New |
Headers | show |
Series | dm: fix DAX dependency | expand |
On Wed, Apr 04 2018 at 5:54am -0400, Arnd Bergmann <arnd@arndb.de> wrote: > Building device mapper with CONFIG_DAX=m now results in a link error: > > drivers/md/dm.o: In function `dm_put_table_device': > dm.c:(.text+0x33c): undefined reference to `put_dax' > drivers/md/dm.o: In function `cleanup_mapped_device': > dm.c:(.text+0x1054): undefined reference to `kill_dax' > dm.c:(.text+0x105c): undefined reference to `put_dax' > drivers/md/dm.o: In function `dm_get_table_device': > dm.c:(.text+0x2744): undefined reference to `dax_get_by_host' > drivers/md/dm-table.o: In function `device_dax_write_cache_enabled': > dm-table.c:(.text+0x1030): undefined reference to `dax_write_cache_enabled' > drivers/md/dm-table.o: In function `dm_table_set_restrictions': > dm-table.c:(.text+0x29b8): undefined reference to `dax_write_cache' > > This adds a dependency that prevents the invalid configuration, allowing > a built-in device mapper only if DAX is either built-in as well, or > completely disabled. > > Fixes: 4de1c562f7e9 ("dax, dm: allow device-mapper to operate without dax support") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > The regression only showed up in linux-next at the start of the merge > window. Any idea what happened? > --- > drivers/md/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig > index 49287135b86c..5e5a47c5ff82 100644 > --- a/drivers/md/Kconfig > +++ b/drivers/md/Kconfig > @@ -200,6 +200,7 @@ config BLK_DEV_DM_BUILTIN > > config BLK_DEV_DM > tristate "Device mapper support" > + depends on DAX || DAX=n > select BLK_DEV_DM_BUILTIN > ---help--- > Device-mapper is a low level volume manager. It works by allowing > -- > 2.9.0 > Seems fine, CONFIG_DAX=m was an oversight in commit 4de1c562f7e9 Dan, do you want to just fold this into that original commit? Either way, please feel free to pick this up. Thanks Arnd. Reviewed-by: Mike Snitzer <snitzer@redhat.com>
On Wed, Apr 4, 2018 at 2:54 AM, Arnd Bergmann <arnd@arndb.de> wrote: > Building device mapper with CONFIG_DAX=m now results in a link error: > > drivers/md/dm.o: In function `dm_put_table_device': > dm.c:(.text+0x33c): undefined reference to `put_dax' > drivers/md/dm.o: In function `cleanup_mapped_device': > dm.c:(.text+0x1054): undefined reference to `kill_dax' > dm.c:(.text+0x105c): undefined reference to `put_dax' > drivers/md/dm.o: In function `dm_get_table_device': > dm.c:(.text+0x2744): undefined reference to `dax_get_by_host' > drivers/md/dm-table.o: In function `device_dax_write_cache_enabled': > dm-table.c:(.text+0x1030): undefined reference to `dax_write_cache_enabled' > drivers/md/dm-table.o: In function `dm_table_set_restrictions': > dm-table.c:(.text+0x29b8): undefined reference to `dax_write_cache' > > This adds a dependency that prevents the invalid configuration, allowing > a built-in device mapper only if DAX is either built-in as well, or > completely disabled. > > Fixes: 4de1c562f7e9 ("dax, dm: allow device-mapper to operate without dax support") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > The regression only showed up in linux-next at the start of the merge > window. Any idea what happened? I had some larger reworks of dax pending in -next until I got a late report of a UML build error. Investigating that made me realize that I missed the device-mapper dax support in those dax reworks, I started pulling in late changes. However, this wider rework is to feel too late for 4.17... Thanks for the fix, I'll get it folded in and reevaluate what bits are still viable / tested enough to push at this stage.
diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig index 49287135b86c..5e5a47c5ff82 100644 --- a/drivers/md/Kconfig +++ b/drivers/md/Kconfig @@ -200,6 +200,7 @@ config BLK_DEV_DM_BUILTIN config BLK_DEV_DM tristate "Device mapper support" + depends on DAX || DAX=n select BLK_DEV_DM_BUILTIN ---help--- Device-mapper is a low level volume manager. It works by allowing
Building device mapper with CONFIG_DAX=m now results in a link error: drivers/md/dm.o: In function `dm_put_table_device': dm.c:(.text+0x33c): undefined reference to `put_dax' drivers/md/dm.o: In function `cleanup_mapped_device': dm.c:(.text+0x1054): undefined reference to `kill_dax' dm.c:(.text+0x105c): undefined reference to `put_dax' drivers/md/dm.o: In function `dm_get_table_device': dm.c:(.text+0x2744): undefined reference to `dax_get_by_host' drivers/md/dm-table.o: In function `device_dax_write_cache_enabled': dm-table.c:(.text+0x1030): undefined reference to `dax_write_cache_enabled' drivers/md/dm-table.o: In function `dm_table_set_restrictions': dm-table.c:(.text+0x29b8): undefined reference to `dax_write_cache' This adds a dependency that prevents the invalid configuration, allowing a built-in device mapper only if DAX is either built-in as well, or completely disabled. Fixes: 4de1c562f7e9 ("dax, dm: allow device-mapper to operate without dax support") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- The regression only showed up in linux-next at the start of the merge window. Any idea what happened? --- drivers/md/Kconfig | 1 + 1 file changed, 1 insertion(+) -- 2.9.0