Module Name:    src
Committed By:   tkusumi
Date:           Sun Dec 22 13:16:10 UTC 2019

Modified Files:
        src/sys/dev/dm: device-mapper.c dm_table.c

Log Message:
dm: Make numsec/secsize arguments in dm_table_disksize() optional


To generate a diff of this commit:
cvs rdiff -u -r1.58 -r1.59 src/sys/dev/dm/device-mapper.c
cvs rdiff -u -r1.17 -r1.18 src/sys/dev/dm/dm_table.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/device-mapper.c
diff -u src/sys/dev/dm/device-mapper.c:1.58 src/sys/dev/dm/device-mapper.c:1.59
--- src/sys/dev/dm/device-mapper.c:1.58	Sun Dec 22 12:28:54 2019
+++ src/sys/dev/dm/device-mapper.c	Sun Dec 22 13:16:09 2019
@@ -1,4 +1,4 @@
-/*        $NetBSD: device-mapper.c,v 1.58 2019/12/22 12:28:54 tkusumi Exp $ */
+/*        $NetBSD: device-mapper.c,v 1.59 2019/12/22 13:16:09 tkusumi Exp $ */
 
 /*
  * Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -431,7 +431,6 @@ disk_ioctl_switch(dev_t dev, unsigned lo
 	case DIOCGWEDGEINFO:
 	{
 		struct dkwedge_info *dkw = (void *) data;
-		unsigned int secsize;
 
 		if ((dmv = dm_dev_lookup(NULL, NULL, minor(dev))) == NULL)
 			return ENODEV;
@@ -443,7 +442,7 @@ disk_ioctl_switch(dev_t dev, unsigned lo
 		strlcpy(dkw->dkw_parent, dmv->name, 16);
 
 		dkw->dkw_offset = 0;
-		dm_table_disksize(&dmv->table_head, &dkw->dkw_size, &secsize);
+		dm_table_disksize(&dmv->table_head, &dkw->dkw_size, NULL);
 		strcpy(dkw->dkw_ptype, DKW_PTYPE_FFS);
 
 		dm_dev_unbusy(dmv);
@@ -494,7 +493,6 @@ disk_ioctl_switch(dev_t dev, unsigned lo
 	}
 	case DIOCGSECTORSIZE:
 	{
-		uint64_t numsec;
 		unsigned int secsize, *valp = data;
 
 		if ((dmv = dm_dev_lookup(NULL, NULL, minor(dev))) == NULL)
@@ -502,7 +500,7 @@ disk_ioctl_switch(dev_t dev, unsigned lo
 
 		aprint_debug("DIOCGSECTORSIZE ioctl called\n");
 
-		dm_table_disksize(&dmv->table_head, &numsec, &secsize);
+		dm_table_disksize(&dmv->table_head, NULL, &secsize);
 		*valp = secsize;
 
 		dm_dev_unbusy(dmv);
@@ -512,14 +510,13 @@ disk_ioctl_switch(dev_t dev, unsigned lo
 	{
 		off_t *valp = data;
 		uint64_t numsec;
-		unsigned int secsize;
 
 		if ((dmv = dm_dev_lookup(NULL, NULL, minor(dev))) == NULL)
 			return ENODEV;
 
 		aprint_debug("DIOCGMEDIASIZE ioctl called\n");
 
-		dm_table_disksize(&dmv->table_head, &numsec, &secsize);
+		dm_table_disksize(&dmv->table_head, &numsec, NULL);
 		*valp = numsec;
 
 		dm_dev_unbusy(dmv);

Index: src/sys/dev/dm/dm_table.c
diff -u src/sys/dev/dm/dm_table.c:1.17 src/sys/dev/dm/dm_table.c:1.18
--- src/sys/dev/dm/dm_table.c:1.17	Sat Dec 21 11:59:03 2019
+++ src/sys/dev/dm/dm_table.c	Sun Dec 22 13:16:09 2019
@@ -1,4 +1,4 @@
-/*        $NetBSD: dm_table.c,v 1.17 2019/12/21 11:59:03 tkusumi Exp $      */
+/*        $NetBSD: dm_table.c,v 1.18 2019/12/22 13:16:09 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.17 2019/12/21 11:59:03 tkusumi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dm_table.c,v 1.18 2019/12/22 13:16:09 tkusumi Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -262,8 +262,11 @@ dm_table_disksize(dm_table_head_t *head,
 		if (secsize < tsecsize)
 			secsize = tsecsize;
 	}
-	*numsecp = secsize > 0 ? dbtob(length) / secsize : 0;
-	*secsizep = secsize;
+
+	if (numsecp)
+		*numsecp = secsize > 0 ? dbtob(length) / secsize : 0;
+	if (secsizep)
+		*secsizep = secsize;
 
 	dm_table_unbusy(head);
 }

Reply via email to