#!/bin/sh
# DF-2881: duplicate swap device via distinct devfs alias vnodes.
# Control: re-swapon the SAME path -> EBUSY (sp->sw_vp == vp matches).
# Bug:     swapon the ALIAS path (same cdev, different vnode) -> accepted,
#          installing a second swdevt stripe over the same physical device.
set -x
date
echo "== baseline swap =="
swapinfo
echo "== control: same path again (expect EBUSY) =="
swapon /dev/vbd0s1b; echo "rc=$?"
echo "== check alias path for the same cdev =="
ls -li /dev/vbd0s1b /dev/serno/QM00003/s1b 2>/dev/null || ls -li /dev/vbd0s1b /dev/serno/QM00003.s1b
echo "== bug: swapon via alias (expect accepted) =="
swapon /dev/serno/QM00003/s1b 2>/dev/null || swapon /dev/serno/QM00003.s1b
echo "rc=$?"
echo "== resulting swap table (expect TWO entries over one device) =="
swapinfo
pstat -s
echo "== immediate cleanup: swapoff the alias =="
swapoff /dev/serno/QM00003/s1b 2>/dev/null || swapoff /dev/serno/QM00003.s1b
echo "rc=$?"
swapinfo
date
