diff options
| author | tkusumi <tkusumi@NetBSD.org> | 2019-12-21 11:59:03 +0000 |
|---|---|---|
| committer | tkusumi <tkusumi@NetBSD.org> | 2019-12-21 11:59:03 +0000 |
| commit | 87d1de18f98b3e78b5d086567959f7431f8fc42a (patch) | |
| tree | 3d1f4c2ef558d31594cae4d74558e53cc1bf680c /sys/dev/dm/dm_target.c | |
| parent | 7a94ebcb188dcd4da56810d8d5686b9cacac2127 (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.c | 12 |
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)) |
