Hi,
1) Swapping to svnds has issues (pagedaemon deadlocks) and has been
broken since forever.
2) Swapping to vnds makes no sense, why add another layer when you
can just swap to a regular file instead ?
so stop supporting swapping to vnds. If this turns out to be kosher
I have a diff tested that removes vnds in favour of svnds.
OK ?
Index: uvm/uvm_swap.c
===================================================================
RCS file: /home/thib/cvs/src/sys/uvm/uvm_swap.c,v
retrieving revision 1.100
diff -u -p -r1.100 uvm_swap.c
--- uvm/uvm_swap.c 21 Dec 2010 20:14:44 -0000 1.100
+++ uvm/uvm_swap.c 4 Apr 2011 09:14:59 -0000
@@ -912,6 +912,10 @@ swap_on(struct proc *p, struct swapdev *
vp = sdp->swd_vp;
dev = sdp->swd_dev;
+ /* no swapping to vnds. */
+ if (bdevsw[major(dev)].d_strategy == &vndstrategy)
+ return (EOPNOTSUPP);
+
/*
* open the swap file (mostly useful for block device files to
* let device driver know what is up).