summaryrefslogtreecommitdiff
path: root/sys/dev/dm/dm_target_linear.c
diff options
context:
space:
mode:
authortkusumi <tkusumi@NetBSD.org>2019-12-21 11:59:03 +0000
committertkusumi <tkusumi@NetBSD.org>2019-12-21 11:59:03 +0000
commit87d1de18f98b3e78b5d086567959f7431f8fc42a (patch)
tree3d1f4c2ef558d31594cae4d74558e53cc1bf680c /sys/dev/dm/dm_target_linear.c
parent7a94ebcb188dcd4da56810d8d5686b9cacac2127 (diff)
dm: Remove target's ->deps() by implementing deps in dm core
Retrieving device dependencies doesn't need to be target specific. The reason it currently needs ->deps() is because dm core doesn't have data structure that allows table to walk through target's underlying devices. Add struct dm_mapping to be able to do this, and remove ->deps()'s from targets which basically do the same thing. =====(A) before this commit table | [dm core] ------------------------------------------------------- | pdev pdev pdev [dm targets] v ^ ^ ^ target----/---------/---------/ (void*) =====(B) this commit table---->mapping-->mapping-->mapping-->... | | | | | v v v [dm core] ------------------------------------------------------- | pdev pdev pdev [dm targets] v ^ ^ ^ target----/---------/---------/ (void*) taken-from: DragonFlyBSD
Diffstat (limited to 'sys/dev/dm/dm_target_linear.c')
-rw-r--r--sys/dev/dm/dm_target_linear.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/sys/dev/dm/dm_target_linear.c b/sys/dev/dm/dm_target_linear.c
index 04de7e43d8d..24d1fea5c0b 100644
--- a/sys/dev/dm/dm_target_linear.c
+++ b/sys/dev/dm/dm_target_linear.c
@@ -1,4 +1,4 @@
-/* $NetBSD: dm_target_linear.c,v 1.34 2019/12/20 16:16:36 tkusumi Exp $ */
+/* $NetBSD: dm_target_linear.c,v 1.35 2019/12/21 11:59:03 tkusumi Exp $ */
/*
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dm_target_linear.c,v 1.34 2019/12/20 16:16:36 tkusumi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dm_target_linear.c,v 1.35 2019/12/21 11:59:03 tkusumi Exp $");
/*
* This file implements initial version of device-mapper dklinear target.
@@ -75,6 +75,7 @@ dm_target_linear_init(dm_table_entry_t *table_en, int argc, char **argv)
tlc->pdev = dmp;
tlc->offset = atoi64(argv[1]);
+ dm_table_add_deps(table_en, dmp);
table_en->target_config = tlc;
return 0;
@@ -162,23 +163,6 @@ out:
return 0;
}
-/* Add this target pdev dependencies to prop_array_t */
-int
-dm_target_linear_deps(dm_table_entry_t *table_en, prop_array_t prop_array)
-{
- dm_target_linear_config_t *tlc;
-
- if (table_en->target_config == NULL)
- return ENOENT;
-
- tlc = table_en->target_config;
-
- prop_array_add_uint64(prop_array,
- (uint64_t) tlc->pdev->pdev_vnode->v_rdev);
-
- return 0;
-}
-
/*
* Register upcall device.
* Linear target doesn't need any upcall devices but other targets like