DF-2632 / validate_fix.sh
#!/bin/sh # DF-2632 fix validation on the patched kernel (X86_64_GENERIC + fix.diff): # 1) dense same-CRC32C window fill to 32768+ entries (4x the stock panic # threshold) -- must complete WITHOUT panic; files present afterwards # (some may be deferred by the fix, that is acceptable); # 2) natural-name directory (20k sequential names) -- unaffected; # 3) stock image roundtrip (write/sync/umount/remount/md5) -- unaffected. set -e cd /root/df2632 cc -O2 -o gen_names gen_names.c cc -O2 -o fill2632 fill2632.c cc -O2 -o naturalprobe naturalprobe.c echo "=== [1] dense window fill (40000 same-CRC32C names, batch=256) ===" truncate -s 512M /tmp/h2632.img vnconfig -c vn1 /tmp/h2632.img newfs_hammer2 -L DATA /dev/vn1 >/dev/null mkdir -p /mnt/h2632 mount_hammer2 /dev/vn1@DATA /mnt/h2632 ./gen_names deadbeef 40000 /tmp/names.txt >/dev/null 2>&1 wc -l < /tmp/names.txt mkdir -p /mnt/h2632/dense ./fill2632 /mnt/h2632/dense /tmp/names.txt 256 echo "fill rc=$? (no panic)" echo "dense files present: $(ls /mnt/h2632/dense | wc -l)" sync echo "after sync: $(ls /mnt/h2632/dense | wc -l)" df /mnt/h2632 umount /mnt/h2632 && echo DENSE_UMOUNT_OK vnconfig -u vn1 echo "=== [2] natural names (20000 sequential + 2000 random) ===" truncate -s 256M /tmp/h2632n.img vnconfig -c vn1 /tmp/h2632n.img newfs_hammer2 -L DATA /dev/vn1 >/dev/null mount_hammer2 /dev/vn1@DATA /mnt/h2632 mkdir -p /mnt/h2632/natural ./naturalprobe /mnt/h2632/natural 20000 2000 1000 || true echo "natural files present: $(ls /mnt/h2632/natural | wc -l)" umount /mnt/h2632 && echo NATURAL_UMOUNT_OK vnconfig -u vn1 echo "=== [3] stock-image roundtrip ===" truncate -s 64M /tmp/h2632r.img vnconfig -c vn1 /tmp/h2632r.img newfs_hammer2 -L DATA /dev/vn1 >/dev/null mount_hammer2 /dev/vn1@DATA /mnt/h2632 dd if=/dev/urandom of=/mnt/h2632/rt.bin bs=1m count=8 2>/dev/null sync A=$(md5 -q /mnt/h2632/rt.bin) umount /mnt/h2632 mount_hammer2 /dev/vn1@DATA /mnt/h2632 B=$(md5 -q /mnt/h2632/rt.bin) echo "md5_live=$A md5_remount=$B" [ "$A" = "$B" ] && echo ROUNDTRIP_MATCH || echo ROUNDTRIP_MISMATCH umount /mnt/h2632 && echo RT_UMOUNT_OK vnconfig -u vn1 echo "VALIDATION2632_COMPLETE" |