Subject: Re: raidframe
To: Ben Collver <collver@softhome.net>
From: Greg Oster <oster@cs.usask.ca>
List: current-users
Date: 11/11/2000 15:21:51
Ben Collver writes:
> > After the 'swapctl -d /dev/raid0b', does a 'swapctl -a /dev/raid0b' succeed
> ?
> 
> Yes.  And I went through the whole sequence several times, and the parity
> stayed clean.

Ok, good.

> > Let's also backup a step...  If you disable swap completely, does the parit
> y 
> > remain clean after a reboot?
> 
> If I disable swap completely the parity remains clean after a reboot.

Good.  So it *is* related to swap then. 

[time passes]

I hunted for a while on this, but it was Chuck Silvers noted the problem...  
apply the following diff to usr/src/sys/uvm/uvm_swap.c, (and leave that 
"# KEYWORDS: shutdown" in /etc/rc.d/swap1) and this problem should be fixed :)

Later...

Greg Oster
-------------------
*** uvm_swap.c.orig	Sat Nov 11 15:12:07 2000
--- uvm_swap.c	Sat Nov 11 15:12:23 2000
***************
*** 1028,1038 ****
  	if (sdp->swd_vp->v_type == VREG) {
  		crfree(sdp->swd_cred);
  	}
- 	if (sdp->swd_vp != rootvp) {
- 		(void) VOP_CLOSE(sdp->swd_vp, FREAD|FWRITE, p->p_ucred, p);
- 	}
  	if (sdp->swd_vp) {
  		vrele(sdp->swd_vp);
  	}
  
  	/* remove anons from the system */
--- 1028,1038 ----
  	if (sdp->swd_vp->v_type == VREG) {
  		crfree(sdp->swd_cred);
  	}
  	if (sdp->swd_vp) {
  		vrele(sdp->swd_vp);
+ 	}
+ 	if (sdp->swd_vp != rootvp) {
+ 		(void) VOP_CLOSE(sdp->swd_vp, FREAD|FWRITE, p->p_ucred, p);
  	}
  
  	/* remove anons from the system */