DragonFlyBSD Kernel Audit
DF-2831 / instrument.diff
← back to finding ↓ download raw
--- /home/maxx/dfbsd/dfbsd/sys/kern/subr_diskslice.c	2026-06-29 12:51:19.000000000 +0000
+++ subr_diskslice.c.inst	2026-09-01 21:48:45.404847188 +0000
@@ -845,7 +845,12 @@
 	u_int64_t blocks;
 
 	slice = dkslice(dev);
-	part = dkpart(dev);
+	part  = dkpart(dev);
+	kprintf("DF2831 ENTER %s slice=%d part=%d ssp=%p ns=%d mask=%d\n",
+		devtoname(dev), slice, part, *sspp,
+		*sspp ? (int)(*sspp)->dss_nslices : -1,
+		((*sspp && slice < (*sspp)->dss_nslices) ?
+		 !!dschkmask(&(*sspp)->dss_slices[slice], part) : -1));
 	ssp = *sspp;
 	if (ssp == NULL || slice >= ssp->dss_nslices
 	    || !dschkmask(&ssp->dss_slices[slice], part)) {
@@ -857,6 +862,10 @@
 		dev_dclose(dev, FREAD, S_IFCHR, NULL);
 		ssp = *sspp;
 	}
+	kprintf("DF2831 WALK ssp=%p ns=%d slice=%d part=%d label=%p\n",
+		ssp, ssp->dss_nslices, slice, part,
+		(slice < ssp->dss_nslices) ?
+		 ssp->dss_slices[slice].ds_label.opaque : (void *)-1);
 	lp = ssp->dss_slices[slice].ds_label;
 	if (part == WHOLE_SLICE_PART) {
 		blocks = ssp->dss_slices[slice].ds_size;
@@ -867,6 +876,8 @@
 		if (ops->op_getpartbounds(ssp, lp, part, &start, &blocks))
 			return (-1);
 	}
+	kprintf("DF2831 EXIT %s blocks=%llu\n", devtoname(dev),
+		(unsigned long long)blocks);
 	return ((int64_t)blocks);
 }