#!/bin/sh
# DF-3009 run.sh - baseline reproduction on the stock kernel (run as root)
#
# 1. fake rpcbind/mountd/nfs server (TCP for NFS program)
# 2. mount_nfs -o tcp  -> mount handshake succeeds
# 3. stat /mnt         -> kernel's first NFS RPC over TCP gets a 4-byte
#                         zero-length record mark as the whole reply
# 4. expected: instant kernel panic in nfs_reply() (fault VA 0x10)
set -e
cd /root/df3009
pkill fakesrv 2>/dev/null || true
sleep 0.3
(./fakesrv > /tmp/fakesrv3009.log 2>&1 &)
sleep 1
mount_nfs -o tcp,port=2049 127.0.0.1:/P /mnt
echo MOUNT_OK
stat /mnt
echo "STAT_RC=$? (reaching this line means no panic)"
