Module Name:    src
Committed By:   tkusumi
Date:           Sun Dec  8 14:59:42 UTC 2019

Modified Files:
        src/sys/dev/dm: dm.h dm_target_error.c dm_target_mirror.c
            dm_target_snapshot.c dm_target_zero.c

Log Message:
dm: Add dummy target ->sync()/->secsize() to prevent panic on modload(8)

dm_target_insert() has assertions to ensure targets implement all handlers.
Adding dummy ones at least prevents panic on modload(8).


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/sys/dev/dm/dm.h
cvs rdiff -u -r1.17 -r1.18 src/sys/dev/dm/dm_target_error.c
cvs rdiff -u -r1.16 -r1.17 src/sys/dev/dm/dm_target_mirror.c
cvs rdiff -u -r1.28 -r1.29 src/sys/dev/dm/dm_target_snapshot.c
cvs rdiff -u -r1.19 -r1.20 src/sys/dev/dm/dm_target_zero.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/dm/dm.h
diff -u src/sys/dev/dm/dm.h:1.37 src/sys/dev/dm/dm.h:1.38
--- src/sys/dev/dm/dm.h:1.37	Sun Dec  8 10:50:21 2019
+++ src/sys/dev/dm/dm.h	Sun Dec  8 14:59:42 2019
@@ -1,4 +1,4 @@
-/*        $NetBSD: dm.h,v 1.37 2019/12/08 10:50:21 tkusumi Exp $      */
+/*        $NetBSD: dm.h,v 1.38 2019/12/08 14:59:42 tkusumi Exp $      */
 
 /*
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -293,6 +293,13 @@ int dm_pdev_destroy(void);
 int dm_pdev_init(void);
 dm_pdev_t* dm_pdev_insert(const char *);
 
+/* XXX dummy */
+static __inline int
+dm_target_dummy_secsize(dm_table_entry_t *table_en, unsigned *secsizep)
+{
+	return 0;
+}
+
 #endif /*_KERNEL*/
 
 #endif /*_DM_DEV_H_*/

Index: src/sys/dev/dm/dm_target_error.c
diff -u src/sys/dev/dm/dm_target_error.c:1.17 src/sys/dev/dm/dm_target_error.c:1.18
--- src/sys/dev/dm/dm_target_error.c:1.17	Sun Dec  8 04:41:02 2019
+++ src/sys/dev/dm/dm_target_error.c	Sun Dec  8 14:59:42 2019
@@ -1,4 +1,4 @@
-/*        $NetBSD: dm_target_error.c,v 1.17 2019/12/08 04:41:02 tkusumi Exp $      */
+/*        $NetBSD: dm_target_error.c,v 1.18 2019/12/08 14:59:42 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.17 2019/12/08 04:41:02 tkusumi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dm_target_error.c,v 1.18 2019/12/08 14:59:42 tkusumi Exp $");
 
 /*
  * This file implements initial version of device-mapper error target.
@@ -88,6 +88,7 @@ dm_target_error_modcmd(modcmd_t cmd, voi
 		dmt->deps = &dm_target_error_deps;
 		dmt->destroy = &dm_target_error_destroy;
 		dmt->upcall = &dm_target_error_upcall;
+		dmt->secsize = dm_target_dummy_secsize;
 
 		r = dm_target_insert(dmt);
 

Index: src/sys/dev/dm/dm_target_mirror.c
diff -u src/sys/dev/dm/dm_target_mirror.c:1.16 src/sys/dev/dm/dm_target_mirror.c:1.17
--- src/sys/dev/dm/dm_target_mirror.c:1.16	Sun Dec  8 10:50:21 2019
+++ src/sys/dev/dm/dm_target_mirror.c	Sun Dec  8 14:59:42 2019
@@ -1,4 +1,4 @@
-/*$NetBSD: dm_target_mirror.c,v 1.16 2019/12/08 10:50:21 tkusumi Exp $*/
+/*$NetBSD: dm_target_mirror.c,v 1.17 2019/12/08 14:59:42 tkusumi Exp $*/
 
 /*
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dm_target_mirror.c,v 1.16 2019/12/08 10:50:21 tkusumi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dm_target_mirror.c,v 1.17 2019/12/08 14:59:42 tkusumi Exp $");
 
 /*
  * This file implements initial version of device-mapper mirror target.
@@ -100,6 +100,7 @@ dm_target_mirror_modcmd(modcmd_t cmd, vo
 		dmt->deps = &dm_target_mirror_deps;
 		dmt->destroy = &dm_target_mirror_destroy;
 		dmt->upcall = &dm_target_mirror_upcall;
+		dmt->secsize = dm_target_dummy_secsize;
 
 		r = dm_target_insert(dmt);
 

Index: src/sys/dev/dm/dm_target_snapshot.c
diff -u src/sys/dev/dm/dm_target_snapshot.c:1.28 src/sys/dev/dm/dm_target_snapshot.c:1.29
--- src/sys/dev/dm/dm_target_snapshot.c:1.28	Sun Dec  8 10:50:21 2019
+++ src/sys/dev/dm/dm_target_snapshot.c	Sun Dec  8 14:59:42 2019
@@ -1,4 +1,4 @@
-/*        $NetBSD: dm_target_snapshot.c,v 1.28 2019/12/08 10:50:21 tkusumi Exp $      */
+/*        $NetBSD: dm_target_snapshot.c,v 1.29 2019/12/08 14:59:42 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_snapshot.c,v 1.28 2019/12/08 10:50:21 tkusumi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dm_target_snapshot.c,v 1.29 2019/12/08 14:59:42 tkusumi Exp $");
 
 /*
  * 1. Suspend my_data to temporarily stop any I/O while the snapshot is being
@@ -90,6 +90,7 @@ __KERNEL_RCSID(0, "$NetBSD: dm_target_sn
 int dm_target_snapshot_init(dm_table_entry_t *, char *);
 char *dm_target_snapshot_status(void *);
 int dm_target_snapshot_strategy(dm_table_entry_t *, struct buf *);
+int dm_target_snapshot_sync(dm_table_entry_t *);
 int dm_target_snapshot_deps(dm_table_entry_t *, prop_array_t);
 int dm_target_snapshot_destroy(dm_table_entry_t *);
 int dm_target_snapshot_upcall(dm_table_entry_t *, struct buf *);
@@ -158,9 +159,11 @@ dm_target_snapshot_modcmd(modcmd_t cmd, 
 		dmt->init = &dm_target_snapshot_init;
 		dmt->status = &dm_target_snapshot_status;
 		dmt->strategy = &dm_target_snapshot_strategy;
+		dmt->sync = &dm_target_snapshot_sync;
 		dmt->deps = &dm_target_snapshot_deps;
 		dmt->destroy = &dm_target_snapshot_destroy;
 		dmt->upcall = &dm_target_snapshot_upcall;
+		dmt->secsize = dm_target_dummy_secsize;
 
 		r = dm_target_insert(dmt);
 
@@ -174,6 +177,7 @@ dm_target_snapshot_modcmd(modcmd_t cmd, 
 		dmt1->deps = &dm_target_snapshot_orig_deps;
 		dmt1->destroy = &dm_target_snapshot_orig_destroy;
 		dmt1->upcall = &dm_target_snapshot_orig_upcall;
+		dmt1->secsize = dm_target_dummy_secsize;
 
 		r = dm_target_insert(dmt1);
 		break;
@@ -319,6 +323,13 @@ dm_target_snapshot_strategy(dm_table_ent
 	return 0;
 }
 
+/* XXX dummy */
+int
+dm_target_snapshot_sync(dm_table_entry_t *table_en)
+{
+	return 0;
+}
+
 /* Doesn't do anything here. */
 int
 dm_target_snapshot_destroy(dm_table_entry_t *table_en)

Index: src/sys/dev/dm/dm_target_zero.c
diff -u src/sys/dev/dm/dm_target_zero.c:1.19 src/sys/dev/dm/dm_target_zero.c:1.20
--- src/sys/dev/dm/dm_target_zero.c:1.19	Sun Dec  8 04:41:02 2019
+++ src/sys/dev/dm/dm_target_zero.c	Sun Dec  8 14:59:42 2019
@@ -1,4 +1,4 @@
-/*        $NetBSD: dm_target_zero.c,v 1.19 2019/12/08 04:41:02 tkusumi Exp $      */
+/*        $NetBSD: dm_target_zero.c,v 1.20 2019/12/08 14:59:42 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.19 2019/12/08 04:41:02 tkusumi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dm_target_zero.c,v 1.20 2019/12/08 14:59:42 tkusumi Exp $");
 
 /*
  * This file implements initial version of device-mapper zero target.
@@ -88,6 +88,7 @@ dm_target_zero_modcmd(modcmd_t cmd, void
 		dmt->deps = &dm_target_zero_deps;
 		dmt->destroy = &dm_target_zero_destroy;
 		dmt->upcall = &dm_target_zero_upcall;
+		dmt->secsize = dm_target_dummy_secsize;
 
 		r = dm_target_insert(dmt);
 		break;

Reply via email to