summaryrefslogtreecommitdiff
path: root/sys/dev/dm/dm_table.c
diff options
context:
space:
mode:
authortkusumi <tkusumi@NetBSD.org>2019-12-15 09:42:29 +0000
committertkusumi <tkusumi@NetBSD.org>2019-12-15 09:42:29 +0000
commite743ff438f64f91780a30c0b65f8fce630593334 (patch)
treedc6d1643d7146bcef99d9bd19fd50c7a3c008982 /sys/dev/dm/dm_table.c
parent618c2d08f211836451807cff66acb77698a4f03d (diff)
dm: Make targets' ->secsize() optional
and make a caller assume secsize 0 if ->secsize not present. This allows a dummy function to be removed which was added in "dm: Add dummy target ->sync()/->secsize() to prevent panic on modload(8)".
Diffstat (limited to 'sys/dev/dm/dm_table.c')
-rw-r--r--sys/dev/dm/dm_table.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/dm/dm_table.c b/sys/dev/dm/dm_table.c
index e549585fdbc..c7eb8e3990f 100644
--- a/sys/dev/dm/dm_table.c
+++ b/sys/dev/dm/dm_table.c
@@ -1,4 +1,4 @@
-/* $NetBSD: dm_table.c,v 1.14 2019/12/15 09:22:28 tkusumi Exp $ */
+/* $NetBSD: dm_table.c,v 1.15 2019/12/15 09:42:29 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_table.c,v 1.14 2019/12/15 09:22:28 tkusumi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dm_table.c,v 1.15 2019/12/15 09:42:29 tkusumi Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -248,7 +248,10 @@ dm_table_disksize(dm_table_head_t *head, uint64_t *numsecp, unsigned int *secsiz
secsize = 0;
SLIST_FOREACH(table_en, tbl, next) {
length += table_en->length;
- table_en->target->secsize(table_en, &tsecsize);
+ if (table_en->target->secsize)
+ table_en->target->secsize(table_en, &tsecsize);
+ else
+ tsecsize = 0;
if (secsize < tsecsize)
secsize = tsecsize;
}