dm vdo: use a proper Makefile for dm-vdo

Requires moving dm-vdo-target.c into drivers/md/dm-vdo/

This change adds a proper drivers/md/dm-vdo/Makefile and eliminates
the abnormal use of patsubst in drivers/md/Makefile -- which was the
cause of at least one build failure that was reported by the upstream
build bot.

Also, split out VDO's drivers/md/dm-vdo/Kconfig and include it from
drivers/md/Kconfig

Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Matthew Sakai <msakai@redhat.com>
This commit is contained in:
Mike Snitzer 2024-01-26 21:18:33 -05:00
parent 4c79d55678
commit f36b1d3ba5
6 changed files with 107 additions and 45 deletions

View File

@ -6124,7 +6124,6 @@ M: dm-devel@lists.linux.dev
L: dm-devel@lists.linux.dev
S: Maintained
F: Documentation/admin-guide/device-mapper/vdo*.rst
F: drivers/md/dm-vdo-target.c
F: drivers/md/dm-vdo/
DEVLINK

View File

@ -498,22 +498,6 @@ config DM_FLAKEY
help
A target that intermittently fails I/O for debugging purposes.
config DM_VDO
tristate "VDO: deduplication and compression target"
depends on 64BIT
depends on BLK_DEV_DM
select DM_BUFIO
select LZ4_COMPRESS
select LZ4_DECOMPRESS
help
This device mapper target presents a block device with
deduplication, compression and thin-provisioning.
To compile this code as a module, choose M here: the module will
be called dm-vdo.
If unsure, say N.
config DM_VERITY
tristate "Verity target support"
depends on BLK_DEV_DM
@ -650,4 +634,6 @@ config DM_AUDIT
Enables audit logging of several security relevant events in the
particular device-mapper targets, especially the integrity target.
source "drivers/md/dm-vdo/Kconfig"
endif # MD

View File

@ -25,7 +25,6 @@ dm-ebs-y += dm-ebs-target.o
dm-era-y += dm-era-target.o
dm-clone-y += dm-clone-target.o dm-clone-metadata.o
dm-verity-y += dm-verity-target.o
dm-vdo-y += dm-vdo-target.o $(patsubst drivers/md/dm-vdo/%.c,dm-vdo/%.o,$(wildcard $(src)/dm-vdo/*.c))
dm-zoned-y += dm-zoned-target.o dm-zoned-metadata.o dm-zoned-reclaim.o
md-mod-y += md.o md-bitmap.o
@ -69,7 +68,7 @@ obj-$(CONFIG_DM_ZERO) += dm-zero.o
obj-$(CONFIG_DM_RAID) += dm-raid.o
obj-$(CONFIG_DM_THIN_PROVISIONING) += dm-thin-pool.o
obj-$(CONFIG_DM_VERITY) += dm-verity.o
obj-$(CONFIG_DM_VDO) += dm-vdo.o
obj-$(CONFIG_DM_VDO) += dm-vdo/
obj-$(CONFIG_DM_CACHE) += dm-cache.o
obj-$(CONFIG_DM_CACHE_SMQ) += dm-cache-smq.o
obj-$(CONFIG_DM_EBS) += dm-ebs.o

17
drivers/md/dm-vdo/Kconfig Normal file
View File

@ -0,0 +1,17 @@
# SPDX-License-Identifier: GPL-2.0-only
config DM_VDO
tristate "VDO: deduplication and compression target"
depends on 64BIT
depends on BLK_DEV_DM
select DM_BUFIO
select LZ4_COMPRESS
select LZ4_DECOMPRESS
help
This device mapper target presents a block device with
deduplication, compression and thin-provisioning.
To compile this code as a module, choose M here: the module will
be called dm-vdo.
If unsure, say N.

View File

@ -0,0 +1,61 @@
# SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_DM_VDO) += dm-vdo.o
dm-vdo-objs := \
action-manager.o \
admin-state.o \
block-map.o \
chapter-index.o \
completion.o \
config.o \
constants.o \
data-vio.o \
dedupe.o \
delta-index.o \
dm-vdo-target.o \
dump.o \
encodings.o \
errors.o \
flush.o \
funnel-queue.o \
funnel-requestqueue.o \
funnel-workqueue.o \
geometry.o \
index-layout.o \
index.o \
index-page-map.o \
index-session.o \
int-map.o \
io-factory.o \
io-submitter.o \
logger.o \
logical-zone.o \
memory-alloc.o \
message-stats.o \
murmurhash3.o \
open-chapter.o \
packer.o \
permassert.o \
physical-zone.o \
pool-sysfs.o \
pool-sysfs-stats.o \
priority-table.o \
radix-sort.o \
recovery-journal.o \
repair.o \
slab-depot.o \
sparse-cache.o \
status-codes.o \
string-utils.o \
sysfs.o \
thread-cond-var.o \
thread-device.o \
thread-registry.o \
uds-sysfs.o \
uds-threads.o \
vdo.o \
vio.o \
volume-index.o \
volume.o \
wait-queue.o

View File

@ -13,32 +13,32 @@
#include <linux/mutex.h>
#include <linux/spinlock.h>
#include "dm-vdo/admin-state.h"
#include "dm-vdo/block-map.h"
#include "dm-vdo/completion.h"
#include "dm-vdo/constants.h"
#include "dm-vdo/data-vio.h"
#include "dm-vdo/dedupe.h"
#include "dm-vdo/dump.h"
#include "dm-vdo/encodings.h"
#include "dm-vdo/errors.h"
#include "dm-vdo/flush.h"
#include "dm-vdo/io-submitter.h"
#include "dm-vdo/logger.h"
#include "dm-vdo/memory-alloc.h"
#include "dm-vdo/message-stats.h"
#include "dm-vdo/pool-sysfs.h"
#include "dm-vdo/recovery-journal.h"
#include "dm-vdo/repair.h"
#include "dm-vdo/slab-depot.h"
#include "dm-vdo/status-codes.h"
#include "dm-vdo/string-utils.h"
#include "dm-vdo/thread-device.h"
#include "dm-vdo/thread-registry.h"
#include "dm-vdo/types.h"
#include "dm-vdo/uds-sysfs.h"
#include "dm-vdo/vdo.h"
#include "dm-vdo/vio.h"
#include "admin-state.h"
#include "block-map.h"
#include "completion.h"
#include "constants.h"
#include "data-vio.h"
#include "dedupe.h"
#include "dump.h"
#include "encodings.h"
#include "errors.h"
#include "flush.h"
#include "io-submitter.h"
#include "logger.h"
#include "memory-alloc.h"
#include "message-stats.h"
#include "pool-sysfs.h"
#include "recovery-journal.h"
#include "repair.h"
#include "slab-depot.h"
#include "status-codes.h"
#include "string-utils.h"
#include "thread-device.h"
#include "thread-registry.h"
#include "types.h"
#include "uds-sysfs.h"
#include "vdo.h"
#include "vio.h"
#define CURRENT_VERSION "8.3.0.65"