summaryrefslogtreecommitdiff
path: root/sys/dev/dm/dm_target.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.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.c')
-rw-r--r--sys/dev/dm/dm_target.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/sys/dev/dm/dm_target.c b/sys/dev/dm/dm_target.c
index 2c4824ad80a..47da9ff3f08 100644
--- a/sys/dev/dm/dm_target.c
+++ b/sys/dev/dm/dm_target.c
@@ -1,4 +1,4 @@
-/* $NetBSD: dm_target.c,v 1.34 2019/12/19 15:34:54 tkusumi Exp $ */
+/* $NetBSD: dm_target.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.c,v 1.34 2019/12/19 15:34:54 tkusumi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dm_target.c,v 1.35 2019/12/21 11:59:03 tkusumi Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -168,10 +168,6 @@ dm_target_insert(dm_target_t *dm_target)
printf("%s missing strategy\n", dm_target->name);
return EINVAL;
}
- if (dm_target->deps == NULL) {
- printf("%s missing deps\n", dm_target->name);
- return EINVAL;
- }
if (dm_target->destroy == NULL) {
printf("%s missing destroy\n", dm_target->name);
return EINVAL;
@@ -324,7 +320,6 @@ dm_target_init(void)
dmt->table = &dm_target_linear_table;
dmt->strategy = &dm_target_linear_strategy;
dmt->sync = &dm_target_linear_sync;
- dmt->deps = &dm_target_linear_deps;
dmt->destroy = &dm_target_linear_destroy;
dmt->upcall = &dm_target_linear_upcall;
dmt->secsize = &dm_target_linear_secsize;
@@ -339,7 +334,6 @@ dm_target_init(void)
dmt->table = &dm_target_stripe_table;
dmt->strategy = &dm_target_stripe_strategy;
dmt->sync = &dm_target_stripe_sync;
- dmt->deps = &dm_target_stripe_deps;
dmt->destroy = &dm_target_stripe_destroy;
dmt->upcall = &dm_target_stripe_upcall;
dmt->secsize = &dm_target_stripe_secsize;
@@ -353,7 +347,6 @@ dm_target_init(void)
dmt->init = &dm_target_error_init;
dmt->table = &dm_target_error_table;
dmt->strategy = &dm_target_error_strategy;
- dmt->deps = &dm_target_error_deps;
dmt->destroy = &dm_target_error_destroy;
dmt->upcall = &dm_target_error_upcall;
if (dm_target_insert(dmt))
@@ -366,7 +359,6 @@ dm_target_init(void)
dmt->init = &dm_target_zero_init;
dmt->table = &dm_target_zero_table;
dmt->strategy = &dm_target_zero_strategy;
- dmt->deps = &dm_target_zero_deps;
dmt->destroy = &dm_target_zero_destroy;
dmt->upcall = &dm_target_zero_upcall;
if (dm_target_insert(dmt))