diff options
| author | tkusumi <tkusumi@NetBSD.org> | 2019-12-16 14:26:23 +0000 |
|---|---|---|
| committer | tkusumi <tkusumi@NetBSD.org> | 2019-12-16 14:26:23 +0000 |
| commit | f2dea84bd7e574bdeecd865e120432c33a0ecf67 (patch) | |
| tree | f70f1edb6ad637c720388256ee61798bcfd933cd /sys/dev | |
| parent | 7aab8670ec798fb8fd7f7eb51e0ac0c6d8b24219 (diff) | |
dm: Enable dm-error and dm-zero target
Add these two targets to dm.kmod.
These are generally available in Linux and DragonFlyBSD,
so enable them in NetBSD as well.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/dm/dm.h | 18 | ||||
| -rw-r--r-- | sys/dev/dm/dm_target.c | 68 | ||||
| -rw-r--r-- | sys/dev/dm/dm_target_error.c | 12 | ||||
| -rw-r--r-- | sys/dev/dm/dm_target_zero.c | 12 |
4 files changed, 67 insertions, 43 deletions
diff --git a/sys/dev/dm/dm.h b/sys/dev/dm/dm.h index 2d162fcc8bc..f63120de78e 100644 --- a/sys/dev/dm/dm.h +++ b/sys/dev/dm/dm.h @@ -1,4 +1,4 @@ -/* $NetBSD: dm.h,v 1.46 2019/12/15 16:14:27 tkusumi Exp $ */ +/* $NetBSD: dm.h,v 1.47 2019/12/16 14:26:23 tkusumi Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -266,6 +266,22 @@ int dm_target_stripe_destroy(dm_table_entry_t *); int dm_target_stripe_upcall(dm_table_entry_t *, struct buf *); int dm_target_stripe_secsize(dm_table_entry_t *, unsigned int *); +/* dm_target_error.c */ +int dm_target_error_init(dm_table_entry_t*, int, char **); +char *dm_target_error_table(void *); +int dm_target_error_strategy(dm_table_entry_t *, struct buf *); +int dm_target_error_deps(dm_table_entry_t *, prop_array_t); +int dm_target_error_destroy(dm_table_entry_t *); +int dm_target_error_upcall(dm_table_entry_t *, struct buf *); + +/* dm_target_zero.c */ +int dm_target_zero_init(dm_table_entry_t *, int, char **); +char *dm_target_zero_table(void *); +int dm_target_zero_strategy(dm_table_entry_t *, struct buf *); +int dm_target_zero_destroy(dm_table_entry_t *); +int dm_target_zero_deps(dm_table_entry_t *, prop_array_t); +int dm_target_zero_upcall(dm_table_entry_t *, struct buf *); + /* dm_table.c */ #define DM_TABLE_ACTIVE 0 #define DM_TABLE_INACTIVE 1 diff --git a/sys/dev/dm/dm_target.c b/sys/dev/dm/dm_target.c index 4599affc391..12f2049d4f1 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.32 2019/12/15 14:39:42 tkusumi Exp $ */ +/* $NetBSD: dm_target.c,v 1.33 2019/12/16 14:26:23 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.32 2019/12/15 14:39:42 tkusumi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dm_target.c,v 1.33 2019/12/16 14:26:23 tkusumi Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -312,14 +312,11 @@ dm_target_prop_list(void) int dm_target_init(void) { - dm_target_t *dmt, *dmt3; - int r; + dm_target_t *dmt; mutex_init(&dm_target_mutex, MUTEX_DEFAULT, IPL_NONE); dmt = dm_target_alloc("linear"); - dmt3 = dm_target_alloc("striped"); - dmt->version[0] = 1; dmt->version[1] = 0; dmt->version[2] = 2; @@ -331,22 +328,49 @@ dm_target_init(void) dmt->destroy = &dm_target_linear_destroy; dmt->upcall = &dm_target_linear_upcall; dmt->secsize = &dm_target_linear_secsize; + if (dm_target_insert(dmt)) + printf("Failed to insert linear\n"); - r = dm_target_insert(dmt); - - dmt3->version[0] = 1; - dmt3->version[1] = 0; - dmt3->version[2] = 3; - dmt3->init = &dm_target_stripe_init; - dmt3->table = &dm_target_stripe_table; - dmt3->strategy = &dm_target_stripe_strategy; - dmt3->sync = &dm_target_stripe_sync; - dmt3->deps = &dm_target_stripe_deps; - dmt3->destroy = &dm_target_stripe_destroy; - dmt3->upcall = &dm_target_stripe_upcall; - dmt3->secsize = &dm_target_stripe_secsize; - - r = dm_target_insert(dmt3); + dmt = dm_target_alloc("striped"); + dmt->version[0] = 1; + dmt->version[1] = 0; + dmt->version[2] = 3; + dmt->init = &dm_target_stripe_init; + 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; + if (dm_target_insert(dmt)) + printf("Failed to insert striped\n"); + + dmt = dm_target_alloc("error"); + dmt->version[0] = 1; + dmt->version[1] = 0; + dmt->version[2] = 0; + 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)) + printf("Failed to insert error\n"); + + dmt = dm_target_alloc("zero"); + dmt->version[0] = 1; + dmt->version[1] = 0; + dmt->version[2] = 0; + 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)) + printf("Failed to insert zero\n"); - return r; + return 0; } diff --git a/sys/dev/dm/dm_target_error.c b/sys/dev/dm/dm_target_error.c index 56a6663df00..3c337a5122f 100644 --- a/sys/dev/dm/dm_target_error.c +++ b/sys/dev/dm/dm_target_error.c @@ -1,4 +1,4 @@ -/* $NetBSD: dm_target_error.c,v 1.24 2019/12/15 14:39:42 tkusumi Exp $ */ +/* $NetBSD: dm_target_error.c,v 1.25 2019/12/16 14:26:23 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_error.c,v 1.24 2019/12/15 14:39:42 tkusumi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dm_target_error.c,v 1.25 2019/12/16 14:26:23 tkusumi Exp $"); /* * This file implements initial version of device-mapper error target. @@ -40,14 +40,6 @@ __KERNEL_RCSID(0, "$NetBSD: dm_target_error.c,v 1.24 2019/12/15 14:39:42 tkusumi #include "dm.h" -/* dm_target_error.c */ -int dm_target_error_init(dm_table_entry_t*, int, char **); -char *dm_target_error_table(void *); -int dm_target_error_strategy(dm_table_entry_t *, struct buf *); -int dm_target_error_deps(dm_table_entry_t *, prop_array_t); -int dm_target_error_destroy(dm_table_entry_t *); -int dm_target_error_upcall(dm_table_entry_t *, struct buf *); - #ifdef DM_TARGET_MODULE /* * Every target can be compiled directly to dm driver or as a diff --git a/sys/dev/dm/dm_target_zero.c b/sys/dev/dm/dm_target_zero.c index c5478948c54..2dc85f692b3 100644 --- a/sys/dev/dm/dm_target_zero.c +++ b/sys/dev/dm/dm_target_zero.c @@ -1,4 +1,4 @@ -/* $NetBSD: dm_target_zero.c,v 1.26 2019/12/15 14:39:42 tkusumi Exp $ */ +/* $NetBSD: dm_target_zero.c,v 1.27 2019/12/16 14:26:23 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_zero.c,v 1.26 2019/12/15 14:39:42 tkusumi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dm_target_zero.c,v 1.27 2019/12/16 14:26:23 tkusumi Exp $"); /* * This file implements initial version of device-mapper zero target. @@ -40,14 +40,6 @@ __KERNEL_RCSID(0, "$NetBSD: dm_target_zero.c,v 1.26 2019/12/15 14:39:42 tkusumi #include "dm.h" -/* dm_target_zero.c */ -int dm_target_zero_init(dm_table_entry_t *, int, char **); -char *dm_target_zero_table(void *); -int dm_target_zero_strategy(dm_table_entry_t *, struct buf *); -int dm_target_zero_destroy(dm_table_entry_t *); -int dm_target_zero_deps(dm_table_entry_t *, prop_array_t); -int dm_target_zero_upcall(dm_table_entry_t *, struct buf *); - #ifdef DM_TARGET_MODULE /* * Every target can be compiled directly to dm driver or as a |
