Index: openafs/src/viced/afsfileprocs.c
diff -c openafs/src/viced/afsfileprocs.c:1.81.2.43 openafs/src/viced/afsfileprocs.c:1.81.2.43.2.1
*** openafs/src/viced/afsfileprocs.c:1.81.2.43	Tue Aug 21 04:28:37 2007
--- openafs/src/viced/afsfileprocs.c	Thu Dec 13 15:59:29 2007
***************
*** 29,35 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.43 2007/08/21 08:28:37 jaltman Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>
--- 29,35 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.43.2.1 2007/12/13 20:59:29 shadow Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>
***************
*** 6112,6118 ****
--- 6112,6120 ----
  		 (tcon->peer ? tcon->peer->host : 0)));
  	errorCode = GetClient(tcon, &client);
  	if (!errorCode) {
+ 	    H_LOCK;
  	    DeleteAllCallBacks_r(client->host, 1);
+ 	    H_UNLOCK;
  	    PutClient(&client);
  	}
      } else {
Index: openafs/src/viced/callback.c
diff -c openafs/src/viced/callback.c:1.55.2.18 openafs/src/viced/callback.c:1.55.2.18.2.2
*** openafs/src/viced/callback.c:1.55.2.18	Wed Oct 24 11:37:32 2007
--- openafs/src/viced/callback.c	Thu Dec 13 15:57:11 2007
***************
*** 83,89 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/callback.c,v 1.55.2.18 2007/10/24 15:37:32 shadow Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>		/* for malloc() */
--- 83,89 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/callback.c,v 1.55.2.18.2.2 2007/12/13 20:57:11 shadow Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>		/* for malloc() */
***************
*** 493,499 ****
  	CcdelB++;
      *cbp = cb->cnext;
      FreeCB(cb);
!     if (deletefe && (--fe->ncbs == 0))
  	FDel(fe);
      return 0;
  }
--- 493,499 ----
  	CcdelB++;
      *cbp = cb->cnext;
      FreeCB(cb);
!     if ((--fe->ncbs == 0) && deletefe)
  	FDel(fe);
      return 0;
  }
***************
*** 1030,1035 ****
--- 1030,1036 ----
  	TDel(cb);
  	HDel(cb);
  	FreeCB(cb);
+ 	fe->ncbs--;
      }
      FDel(fe);
      H_UNLOCK;
***************
*** 1860,1866 ****
      read(fd, &tfirst, sizeof(tfirst));
      read(fd, &freelisthead, sizeof(freelisthead));
      CB = ((struct CallBack
! 	   *)(calloc(cbstuff.nblks, sizeof(struct FileEntry)))) - 1;
      FE = ((struct FileEntry
  	   *)(calloc(cbstuff.nblks, sizeof(struct FileEntry)))) - 1;
      CBfree = (struct CallBack *)itocb(freelisthead);
--- 1861,1867 ----
      read(fd, &tfirst, sizeof(tfirst));
      read(fd, &freelisthead, sizeof(freelisthead));
      CB = ((struct CallBack
! 	   *)(calloc(cbstuff.nblks, sizeof(struct CallBack)))) - 1;
      FE = ((struct FileEntry
  	   *)(calloc(cbstuff.nblks, sizeof(struct FileEntry)))) - 1;
      CBfree = (struct CallBack *)itocb(freelisthead);
Index: openafs/src/viced/host.c
diff -c openafs/src/viced/host.c:1.57.2.49 openafs/src/viced/host.c:1.57.2.49.2.1
*** openafs/src/viced/host.c:1.57.2.49	Thu Sep  6 23:55:40 2007
--- openafs/src/viced/host.c	Thu Dec 13 15:55:42 2007
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/host.c,v 1.57.2.49 2007/09/07 03:55:40 shadow Exp $");
  
  #include <stdio.h>
  #include <errno.h>
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/host.c,v 1.57.2.49.2.1 2007/12/13 20:55:42 shadow Exp $");
  
  #include <stdio.h>
  #include <errno.h>
***************
*** 1558,1563 ****
--- 1558,1564 ----
  		     host->interface ? uuid2 : ""));
  
  	    /* The host in the cache is not the host for this connection */
+             h_Lock_r(host);
  	    host->hostFlags |= HOSTDELETED;
  	    host->hostFlags &= ~HWHO_INPROGRESS;
  	    h_Unlock_r(host);
Index: openafs/src/viced/viced.c
diff -c openafs/src/viced/viced.c:1.58.2.19 openafs/src/viced/viced.c:1.58.2.19.2.1
*** openafs/src/viced/viced.c:1.58.2.19	Fri Jan 12 00:23:44 2007
--- openafs/src/viced/viced.c	Thu Dec 13 16:00:43 2007
***************
*** 20,26 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/viced.c,v 1.58.2.19 2007/01/12 05:23:44 shadow Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>
--- 20,26 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/viced.c,v 1.58.2.19.2.1 2007/12/13 21:00:43 shadow Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>
***************
*** 699,704 ****
--- 699,707 ----
  	}
      }
  
+     if (dopanic)
+ 	assert(0);
+ 
      exit(0);
  
  }				/*ShutDown */
Index: openafs/src/vol/partition.c
diff -c openafs/src/vol/partition.c:1.30.2.4 openafs/src/vol/partition.c:1.30.2.4.2.1
*** openafs/src/vol/partition.c:1.30.2.4	Thu May 10 18:44:12 2007
--- openafs/src/vol/partition.c	Thu Dec 13 16:01:58 2007
***************
*** 21,27 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/partition.c,v 1.30.2.4 2007/05/10 22:44:12 shadow Exp $");
  
  #include <ctype.h>
  #ifdef AFS_NT40_ENV
--- 21,27 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/partition.c,v 1.30.2.4.2.1 2007/12/13 21:01:58 shadow Exp $");
  
  #include <ctype.h>
  #ifdef AFS_NT40_ENV
***************
*** 440,446 ****
  	/* but allow zfs too if we're in the NAMEI environment */
  	if (
  #ifdef AFS_NAMEI_ENV
! 	    ((!(strcmp(mnt.mnt_fstype, "ufs") &&
  		strcmp(mnt.mnt_fstype, "zfs"))))
  #else
  	    (strcmp(mnt.mnt_fstype, "ufs") != 0)
--- 440,446 ----
  	/* but allow zfs too if we're in the NAMEI environment */
  	if (
  #ifdef AFS_NAMEI_ENV
! 	    (((strcmp(mnt.mnt_fstype, "ufs") &&
  		strcmp(mnt.mnt_fstype, "zfs"))))
  #else
  	    (strcmp(mnt.mnt_fstype, "ufs") != 0)
