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