summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_swap.c
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1995-05-19 03:27:08 +0000
committerdg <dg@FreeBSD.org>1995-05-19 03:27:08 +0000
commit240701b33f6e29d9a8af5865149a9c3471f2f342 (patch)
tree97034757da4a025cf749a7136a8b5b466b4664a3 /sys/vm/vm_swap.c
parent3474ee3930b2020ff8e8b697f5b838faac802549 (diff)
downloadFreeBSD-src-240701b33f6e29d9a8af5865149a9c3471f2f342.zip
FreeBSD-src-240701b33f6e29d9a8af5865149a9c3471f2f342.tar.gz
NFS diskless operation was broken because swapdev_vp wasn't initialized.
These changes solve the problem in a general way by moving the initialization out of the individual fs_mountroot's and into swaponvp(). Submitted by: Poul-Henning Kamp
Diffstat (limited to 'sys/vm/vm_swap.c')
-rw-r--r--sys/vm/vm_swap.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/vm/vm_swap.c b/sys/vm/vm_swap.c
index d66fb01..2191a73 100644
--- a/sys/vm/vm_swap.c
+++ b/sys/vm/vm_swap.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)vm_swap.c 8.5 (Berkeley) 2/17/94
- * $Id: vm_swap.c,v 1.17 1995/05/14 03:00:10 davidg Exp $
+ * $Id: vm_swap.c,v 1.18 1995/05/18 05:09:54 davidg Exp $
*/
#include <sys/param.h>
@@ -58,6 +58,7 @@
#endif
static struct swdevt should_be_malloced[NSWAPDEV];
struct swdevt *swdevt = should_be_malloced;
+struct vnode *swapdev_vp;
int nswap; /* first block after the interleaved devs */
int nswdev = NSWAPDEV;
int vm_swap_size;
@@ -249,5 +250,9 @@ swaponvp(p, vp, dev, nblks)
rlist_free(&swaplist, vsbase, vsbase + blk - 1);
vm_swap_size += blk;
}
+
+ if (!swapdev_vp && bdevvp(swapdev, &swapdev_vp))
+ panic("Cannot get vnode for swapdev");
+
return (0);
}
OpenPOWER on IntegriCloud