diff options
| author | tkusumi <tkusumi@NetBSD.org> | 2020-01-02 06:22:23 +0000 |
|---|---|---|
| committer | tkusumi <tkusumi@NetBSD.org> | 2020-01-02 06:22:23 +0000 |
| commit | c65e487898ff2132cb4d8880fa10c715c6d8f93e (patch) | |
| tree | 6e59873a429f2bb2c0cf606413a2786667d9f1a8 /sys/dev/dm/dm_target.c | |
| parent | b4d0e6a8fd5ceb116b591921a8589096d63e993b (diff) | |
dm: Add dm-flakey target
Ported from DragonFlyBSD, but this target had originally existed in
Linux kernel. See below for details.
https://www.kernel.org/doc/Documentation/device-mapper/dm-flakey.txt
Due to two technical issues, this hasn't been hooked to dm.kmod yet.
1) "tick" in hz(9) not working.
2) Unable to use ->b_private in nestiobuf callback when it's already
used for mbp (see HAS_BUF_PRIV2).
taken-from: DragonFlyBSD
Diffstat (limited to 'sys/dev/dm/dm_target.c')
| -rw-r--r-- | sys/dev/dm/dm_target.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/sys/dev/dm/dm_target.c b/sys/dev/dm/dm_target.c index 7c63c391ce4..9a31b8c0d22 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.37 2019/12/23 16:17:35 tkusumi Exp $ */ +/* $NetBSD: dm_target.c,v 1.38 2020/01/02 06:22: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.37 2019/12/23 16:17:35 tkusumi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dm_target.c,v 1.38 2020/01/02 06:22:23 tkusumi Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -358,6 +358,20 @@ dm_target_init(void) dmt->upcall = &dm_target_zero_upcall; if (dm_target_insert(dmt)) printf("Failed to insert zero\n"); - +#if 0 + dmt = dm_target_alloc("flakey"); + dmt->version[0] = 1; + dmt->version[1] = 0; + dmt->version[2] = 0; + dmt->init = &dm_target_flakey_init; + dmt->table = &dm_target_flakey_table; + dmt->strategy = &dm_target_flakey_strategy; + dmt->sync = &dm_target_flakey_sync; + dmt->destroy = &dm_target_flakey_destroy; + dmt->upcall = &dm_target_flakey_upcall; + dmt->secsize = &dm_target_flakey_secsize; + if (dm_target_insert(dmt)) + printf("Failed to insert flakey\n"); +#endif return 0; } |
