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