DF-3154 / instrument.sh
#!/bin/sh # DF-3154 debug instrumentation: add kprintfs at the csum-verify failure # points in the guest's /usr/src ext2fs, build the ext2fs.ko module, load it. set -e cd /usr/src/sys/vfs/ext2fs [ -f ext2_csum.c.orig ] || cp ext2_csum.c ext2_csum.c.orig sed -i '' 's|SDT_PROBE2(ext2fs, , trace, csum, 1, "bad directory csum detected");|SDT_PROBE2(ext2fs, , trace, csum, 1, "bad directory csum detected"); kprintf("DF3154DBG: bad DIR csum ino=%ju\n", (uintmax_t)ip->i_number);|' ext2_csum.c sed -i '' 's|SDT_PROBE2(ext2fs, , trace, csum, 1, "bad inode csum");|SDT_PROBE2(ext2fs, , trace, csum, 1, "bad inode csum"); kprintf("DF3154DBG: bad INODE csum ino=%ju prov=%x calc=%x\n", (uintmax_t)ip->i_number, provided, calculated);|' ext2_csum.c grep -n DF3154DBG ext2_csum.c make clean >/dev/null 2>&1 || true make 2>&1 | tail -4 ls -la ext2fs.ko kldunload ext2fs 2>/dev/null || true kldload ./ext2fs.ko kldstat | grep ext2 echo INSTRUMENT-OK |