#!/bin/sh
# DF-2661 Phase V, step 2 (v2): build kernel B (stock + inject.diff + fix_b.diff).
# Order: injector FIRST (applies cleanly against stock, as proven on kernel A),
# then fix_b.diff (re-anchored to include the injector lines in its context).
set -e
cd /usr/src
if ! grep -q "df2661_fail_inode_read" sys/vfs/hammer2/hammer2_io.c; then
	patch -p1 --dry-run < /root/df2661/inject.diff
	patch -p1 < /root/df2661/inject.diff
fi
if ! grep -q "DF-2661: If the I/O failed" sys/vfs/hammer2/hammer2_io.c; then
	patch -p1 --dry-run < /root/df2661/fix_b.diff
	patch -p1 < /root/df2661/fix_b.diff
fi
grep -n "df2661_fail_inode_read > 0" sys/vfs/hammer2/hammer2_io.c | head -1
grep -n "DF-2661: If the I/O failed" sys/vfs/hammer2/hammer2_io.c | head -1
make -j6 nativekernel KERNCONF=X86_64_GENERIC
make installkernel KERNCONF=X86_64_GENERIC
echo KERNEL_B_INSTALLED
