⬢ DragonFlyBSD Kernel Audit
DF-3141 / diag_instrument.diff
← back to finding ↓ download raw
--- a/sys/vfs/hpfs/hpfs_vfsops.c	2026-09-07 01:31:20.570205276 +0000
+++ b/sys/vfs/hpfs/hpfs_vfsops.c	2026-09-07 01:31:20.594204968 +0000
@@ -532,6 +532,12 @@
 		vx_put(vp);
 		return (error);
 	}
+	{
+		unsigned char *t = (unsigned char *)bp->b_data + 512;
+		kprintf("DFCHK vget ino=%llx b_data=%p tail8=%02x%02x%02x%02x%02x%02x%02x%02x sizeof(fnode)=%zu\n",
+		    (unsigned long long)ino, bp->b_data,
+		    t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7], sizeof(struct fnode));
+	}
 	bcopy(bp->b_data, &hp->h_fn, sizeof(struct fnode));
 	brelse(bp);
 
--- a/sys/vfs/hpfs/hpfs_subr.c	2026-09-07 01:31:20.570205276 +0000
+++ b/sys/vfs/hpfs/hpfs_subr.c	2026-09-07 01:31:20.618204657 +0000
@@ -734,8 +734,23 @@
 
 	bp = getblk(hp->h_devvp, dbtodoff(hp->h_no), FNODESIZE, 0, 0);
 	clrbuf(bp);
-
-	bcopy (&hp->h_fn, bp->b_data, sizeof(struct fnode));
+	{
+		unsigned char *t = (unsigned char *)bp->b_data + 512;
+		kprintf("DFCHK upd pre  ino=%x b_data=%p tail8=%02x%02x%02x%02x%02x%02x%02x%02x\n",
+		    hp->h_no, bp->b_data,
+		    t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]);
+	}
+	{
+		bcopy (&hp->h_fn, bp->b_data, sizeof(struct fnode));
+	}
+	{
+		unsigned char *t = (unsigned char *)bp->b_data + 512;
+		unsigned char *h = (unsigned char *)&hp->h_fn;
+		kprintf("DFCHK upd post ino=%x tail8=%02x%02x%02x%02x%02x%02x%02x%02x hfn_tail=%02x%02x%02x%02x%02x%02x%02x%02x\n",
+		    hp->h_no,
+		    t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],
+		    h[512],h[513],h[514],h[515],h[516],h[517],h[518],h[519]);
+	}
 	bdwrite (bp);
 
 	hp->h_flag &= ~H_CHANGE;
--- a/sys/vfs/hpfs/hpfs_vnops.c	2026-09-07 01:31:20.574205224 +0000
+++ b/sys/vfs/hpfs/hpfs_vnops.c	2026-09-07 01:31:20.618204657 +0000
@@ -405,6 +405,8 @@
 		 * anything and must do a read-before-write to fill in
 		 * any missing pieces.
 		 */
+		kprintf("DFCHK wr loff=%lld towrite=%u xfersz=%u\n",
+		    (long long)dbtodoff(bn), towrite, xfersz);
 		if (off == 0 && towrite == xfersz &&
 		    uio->uio_segflg != UIO_NOCOPY) {
 			bp = getblk(hp->h_devvp, dbtodoff(bn), xfersz, 0, 0);