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);
}