From c65e487898ff2132cb4d8880fa10c715c6d8f93e Mon Sep 17 00:00:00 2001 From: tkusumi Date: Thu, 2 Jan 2020 06:22:23 +0000 Subject: 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 --- sys/dev/dm/dm_target.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'sys/dev/dm/dm_target.c') 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 -__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 #include @@ -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; } -- cgit