reindent-20030715
[openafs.git] / src / vlserver / cnvldb.c
index ede8d45..dbe42d5 100644 (file)
@@ -10,7 +10,8 @@
 #include <afsconfig.h>
 #include <afs/param.h>
 
-RCSID("$Header$");
+RCSID
+    ("$Header$");
 
 #include <afs/stds.h>
 #include <sys/types.h>
@@ -26,7 +27,7 @@ RCSID("$Header$");
 #endif
 #endif
 
-#include "cnvldb.h"  /* CHANGEME! */
+#include "cnvldb.h"            /* CHANGEME! */
 #include <netinet/in.h>
 #include <afs/venus.h>
 #include <afs/cmd.h>
@@ -35,7 +36,7 @@ RCSID("$Header$");
 
 #include "vlserver.h"
 
-#define MAXSIZE 2048 /* most I'll get back from PIOCTL */
+#define MAXSIZE 2048           /* most I'll get back from PIOCTL */
 #define        BADSERVERID     255     /* XXX */
 
 
@@ -43,24 +44,26 @@ extern struct cmd_syndesc *cmd_CreateSyntax();
 static char pn[] = "cnvldb";
 static char tempname[] = "XXnewvldb";
 static char space[MAXSIZE];
-static int MaxServers[3] = {30,254,254};/* max server # permitted in this version*/
+static int MaxServers[3] = { 30, 254, 254 };   /* max server # permitted in this version */
 
 static afs_int32 Conv4to3();
 
 static int convert_vlentry();
 static int rewrite_header();
 
-static char tspace[1024];    /* chdir can't handle anything bigger, anyway */
+static char tspace[1024];      /* chdir can't handle anything bigger, anyway */
 /* return a static pointer to a buffer */
-static char *Parent(apath)
-char *apath; {
+static char *
+Parent(apath)
+     char *apath;
+{
     register char *tp;
     strcpy(tspace, apath);
     tp = strrchr(tspace, '/');
     if (tp) {
        *tp = 0;
-    }
-    else strcpy(tspace, ".");
+    } else
+       strcpy(tspace, ".");
     return tspace;
 }
 
@@ -71,143 +74,146 @@ afs_int32 dbsize;
 char *pathname = NULL;
 const char *dbPath;
 
-static handleit(as) 
-    struct cmd_syndesc *as;
+static
+handleit(as)
+     struct cmd_syndesc *as;
 {
     register struct cmd_item *ti;
     register afs_int32 code;
-    int w, old, new, rc, dump=0, fromv=0;
+    int w, old, new, rc, dump = 0, fromv = 0;
     short uvers;
-    char ubik[80];  /* space for some ubik header */
+    char ubik[80];             /* space for some ubik header */
     union {
        struct vlheader_1 header1;
        struct vlheader_2 header2;
        struct vlheader_3 header3;
-    } oldheader, oldheader1, newheader;         /* large enough for either */
-  
+    } oldheader, oldheader1, newheader;        /* large enough for either */
+
     union {
        struct vlentry_1 entry1;
        struct vlentry_2 entry2;
        struct vlentry_3 entry3;
-       char   mhinfo_block[VL_ADDREXTBLK_SIZE];
+       char mhinfo_block[VL_ADDREXTBLK_SIZE];
     } xvlentry;
-  
-    pathname    = (as->parms[2].items ? as->parms[2].items->data : dbPath); /* -name */
-    showversion = (as->parms[3].items ? 1 : 0); /* -showversion */
-    dump        = (as->parms[4].items ? 1 : 0); /* -dumpvldb */
-    fromvers    = (as->parms[1].items ? atoi(as->parms[1].items->data) : 0); /* -fromversion */
-    tovers      = (as->parms[0].items ? atoi(as->parms[0].items->data) : 0); /* -toversion */
+
+    pathname = (as->parms[2].items ? as->parms[2].items->data : dbPath);       /* -name */
+    showversion = (as->parms[3].items ? 1 : 0);        /* -showversion */
+    dump = (as->parms[4].items ? 1 : 0);       /* -dumpvldb */
+    fromvers = (as->parms[1].items ? atoi(as->parms[1].items->data) : 0);      /* -fromversion */
+    tovers = (as->parms[0].items ? atoi(as->parms[0].items->data) : 0);        /* -toversion */
 
     /* should stat() the old vldb, get its size, and see if there's */
     /* room for another.  It might be in AFS, so check the quota, too */
-    old = open(pathname,O_RDONLY);
+    old = open(pathname, O_RDONLY);
     if (old < 0) {
-       perror(pn); 
-       exit (-1);
+       perror(pn);
+       exit(-1);
     }
 
     /* Read the version */
     lseek(old, 64, L_SET);
-    read (old, &fromv, sizeof(int));
+    read(old, &fromv, sizeof(int));
     fromv = ntohl(fromv);
     if ((fromv < 1) || (fromv > 4)) {
-       fprintf(stderr, pn);
-       fprintf(stderr,": Unrecognized VLDB version %d.\n", fromv);
-       exit(-1);
+       fprintf(stderr, pn);
+       fprintf(stderr, ": Unrecognized VLDB version %d.\n", fromv);
+       exit(-1);
     }
 
     /* Sequentially read the database converting the entries as we go */
     lseek(old, 0, L_SET);
-    read  (old, ubik, 64);
-    readheader (old, fromv, &oldheader);
+    read(old, ubik, 64);
+    readheader(old, fromv, &oldheader);
     if (fromv == 1) {
-       dbsize = ntohl(oldheader.header1.vital_header.eofPtr);
-       fromv  = ntohl(oldheader.header1.vital_header.vldbversion);
-       mhaddr = 0;
+       dbsize = ntohl(oldheader.header1.vital_header.eofPtr);
+       fromv = ntohl(oldheader.header1.vital_header.vldbversion);
+       mhaddr = 0;
     } else if (fromv == 2) {
-       dbsize = ntohl(oldheader.header2.vital_header.eofPtr);
-       fromv  = ntohl(oldheader.header2.vital_header.vldbversion);
-       mhaddr = 0;
+       dbsize = ntohl(oldheader.header2.vital_header.eofPtr);
+       fromv = ntohl(oldheader.header2.vital_header.vldbversion);
+       mhaddr = 0;
     } else {
-       int pos;
+       int pos;
 
-       dbsize = ntohl(oldheader.header3.vital_header.eofPtr);
-       fromv  = ntohl(oldheader.header3.vital_header.vldbversion);
-       mhaddr = ntohl(oldheader.header3.SIT);
+       dbsize = ntohl(oldheader.header3.vital_header.eofPtr);
+       fromv = ntohl(oldheader.header3.vital_header.vldbversion);
+       mhaddr = ntohl(oldheader.header3.SIT);
 
-       /* Read the multihomed extent blocks in */
-       pos = oldpos;
-       read_mhentries(mhaddr, old);
+       /* Read the multihomed extent blocks in */
+       pos = oldpos;
+       read_mhentries(mhaddr, old);
 
-       /* Position back to this after header */
-       lseek(old, pos+64, L_SET);
-       oldpos = pos;
+       /* Position back to this after header */
+       lseek(old, pos + 64, L_SET);
+       oldpos = pos;
     }
 
     if (showversion || dump) {
-       if (showversion)
-         fprintf(stdout, "%s has a version of %d\n", pathname, fromv);
-       if (dump) {
-         while (oldpos < dbsize) {
-            rc = readentry(old, fromv, &xvlentry);
-            if ((rc == 0) || (rc == EOF)) break;
-            printentry(fromv, &xvlentry);
-         }
-       }
-       exit(0);
+       if (showversion)
+           fprintf(stdout, "%s has a version of %d\n", pathname, fromv);
+       if (dump) {
+           while (oldpos < dbsize) {
+               rc = readentry(old, fromv, &xvlentry);
+               if ((rc == 0) || (rc == EOF))
+                   break;
+               printentry(fromv, &xvlentry);
+           }
+       }
+       exit(0);
     }
 
-    if (!fromvers) { /* not set */
-       fromvers = fromv;
+    if (!fromvers) {           /* not set */
+       fromvers = fromv;
     } else if (fromvers != fromv) {
-       fprintf(stdout, "%s has a version of %d while the -fromversion specified was %d - aborting\n", 
-              pathname, fromv, fromvers);
+       fprintf(stdout,
+               "%s has a version of %d while the -fromversion specified was %d - aborting\n",
+               pathname, fromv, fromvers);
        exit(0);
     }
 
     if ((fromvers < 1) || (fromvers > 4)) {
-       fprintf(stderr, pn);
-       fprintf(stderr,": VLDB version %d is not supported.\n",fromvers);
-       fprintf(stderr, pn);
-       fprintf(stderr, ": Only versions 1-4 are currently supported.\n");
-       exit(-1);
+       fprintf(stderr, pn);
+       fprintf(stderr, ": VLDB version %d is not supported.\n", fromvers);
+       fprintf(stderr, pn);
+       fprintf(stderr, ": Only versions 1-4 are currently supported.\n");
+       exit(-1);
     }
 
     if (!tovers)
-      tovers = fromvers + 1;
-
-    if (tovers < 1 || tovers > 4 ) {
-      fprintf(stderr, pn);
-      fprintf(stderr,": VLDB version %d is not supported.\n",tovers);
-      fprintf(stderr, pn);
-      fprintf(stderr, ": Only versions 1 - 4 are currently supported.\n");
-      exit(-1);
+       tovers = fromvers + 1;
+
+    if (tovers < 1 || tovers > 4) {
+       fprintf(stderr, pn);
+       fprintf(stderr, ": VLDB version %d is not supported.\n", tovers);
+       fprintf(stderr, pn);
+       fprintf(stderr, ": Only versions 1 - 4 are currently supported.\n");
+       exit(-1);
     }
 
     if (mhaddr && (tovers < 3)) {
-       fprintf(stderr, pn);
-       fprintf(stderr,": Cannot convert. VLDB contains multihome info.\n");
-       exit(-1);
+       fprintf(stderr, pn);
+       fprintf(stderr, ": Cannot convert. VLDB contains multihome info.\n");
+       exit(-1);
     }
 
     /* OK! let's get down to business... */
 
     if (chdir(Parent(pathname))) {
-       perror (pn);
+       perror(pn);
        exit(-1);
     }
-  
-    new = open(tempname,O_WRONLY|O_CREAT|O_TRUNC,0600);
+
+    new = open(tempname, O_WRONLY | O_CREAT | O_TRUNC, 0600);
     if (new < 0) {
-       perror(pn);
-       exit(-1);
+       perror(pn);
+       exit(-1);
     }
-  
+
     /* Write the UBIK data */
-    w = write (new, ubik, 64);
+    w = write(new, ubik, 64);
     if (w != 64) {
-       printf("Write of ubik header failed %d; error %u\n", w, errno);
-       exit(1);
+       printf("Write of ubik header failed %d; error %u\n", w, errno);
+       exit(1);
     }
 
     /* Because we know that all the vldb entries are the same size and type we 
@@ -217,12 +223,14 @@ static handleit(as)
      * converting the vldb-- we'll probably have to chase down the various
      * linked lists in turn, doing lseeks and the like.
      */
-  
+
     convert_header(old, new, fromvers, tovers, &oldheader, &newheader);
     while (oldpos < dbsize) {
-       rc = readentry(old, fromvers, &xvlentry);
-       if ((rc == 0) || (rc == EOF)) break;
-       convert_vlentry(new, fromvers, tovers, &oldheader, &newheader, &xvlentry);
+       rc = readentry(old, fromvers, &xvlentry);
+       if ((rc == 0) || (rc == EOF))
+           break;
+       convert_vlentry(new, fromvers, tovers, &oldheader, &newheader,
+                       &xvlentry);
     }
 
     /* We have now finished sequentially reading and writing the database.
@@ -238,66 +246,71 @@ static handleit(as)
     }
     close(new);
 
-    renamefile(tempname,pathname);
+    renamefile(tempname, pathname);
     sleep(5);
     exit(0);
 }
 
 
-readheader(fd, version, addr) 
-    int fd;
-    int version;
-    char *addr;
+readheader(fd, version, addr)
+     int fd;
+     int version;
+     char *addr;
 {
-    int hdrsize, size=0;
+    int hdrsize, size = 0;
 
     oldpos = 0;
     if (version == 1)
-       hdrsize = sizeof(struct vlheader_1);
-    else 
-       hdrsize = sizeof(struct vlheader_2);
+       hdrsize = sizeof(struct vlheader_1);
+    else
+       hdrsize = sizeof(struct vlheader_2);
 
     size = read(fd, addr, hdrsize);
-    if (size > 0) oldpos += size;
+    if (size > 0)
+       oldpos += size;
 
     return;
 }
 
-readentry(fd, version, addr) 
-    int fd;
-    int version;
-    char *addr;
+readentry(fd, version, addr)
+     int fd;
+     int version;
+     char *addr;
 {
     int rc, rc1;
     struct vlentry_3 *vl3p = (struct vlentry_3 *)addr;
     int toread;
 
-    toread = ((version == 1) ? sizeof(struct vlentry_1) : sizeof(struct vlentry_2));
+    toread =
+       ((version ==
+         1) ? sizeof(struct vlentry_1) : sizeof(struct vlentry_2));
     rc = read(fd, addr, toread);
     if (rc != toread)
-       printf("Partial read of vlentry at pos %u: %d\n", oldpos, rc);
-    if (rc > 0) oldpos += rc;
+       printf("Partial read of vlentry at pos %u: %d\n", oldpos, rc);
+    if (rc > 0)
+       oldpos += rc;
 
     /* Read a mhblock entry if there is one */
     if ((rc > 0) && (vl3p->flags == VLCONTBLOCK)) {
-       if (!mhaddr)          /* Remember first mh block */
-         mhaddr = oldpos - rc;
-
-       rc1 = read(fd, &addr[rc], VL_ADDREXTBLK_SIZE-rc);
-       if (rc1 != VL_ADDREXTBLK_SIZE-rc)
-         printf("Partial read of mhblock at pos %u: %d\n", oldpos+rc, rc1);
-       if (rc1 > 0) {
-         oldpos += rc1;
-         rc     += rc1;
-       }
+       if (!mhaddr)            /* Remember first mh block */
+           mhaddr = oldpos - rc;
+
+       rc1 = read(fd, &addr[rc], VL_ADDREXTBLK_SIZE - rc);
+       if (rc1 != VL_ADDREXTBLK_SIZE - rc)
+           printf("Partial read of mhblock at pos %u: %d\n", oldpos + rc,
+                  rc1);
+       if (rc1 > 0) {
+           oldpos += rc1;
+           rc += rc1;
+       }
     }
 
     return rc;
 }
 
-printentry(version, addr) 
-    int version;
-    char *addr;
+printentry(version, addr)
+     int version;
+     char *addr;
 {
     struct vlentry_2 *vl2p = (struct vlentry_2 *)addr;
     struct vlentry_3 *vl3p = (struct vlentry_3 *)addr;
@@ -305,42 +318,42 @@ printentry(version, addr)
 
     /* Don't print anything if the entry is a mh info block */
     if (vl3p->flags == VLCONTBLOCK) {
-       return;
+       return;
     }
 
     if (version == 1 || version == 2) {
-       printf("%s\t%5d [%10d:%10d:%10d]%8X%8d\n",
-              vl2p->name, vl2p->spares3, 
+       printf("%s\t%5d [%10d:%10d:%10d]%8X%8d\n", vl2p->name, vl2p->spares3,
               vl2p->volumeId[0], vl2p->volumeId[1], vl2p->volumeId[2],
               vl2p->flags, vl2p->LockAfsId);
        printf("\t%8d%8d%8d [%7d%7d%7d]%7d% [%4d%4d%4d%4d][%4d%4d%4d%4d]\n",
-              vl2p->LockTimestamp, vl2p->cloneId, vl2p->spares0, 
+              vl2p->LockTimestamp, vl2p->cloneId, vl2p->spares0,
               vl2p->nextIdHash[0], vl2p->nextIdHash[1], vl2p->nextIdHash[2],
-              vl2p->nextNameHash, 
-              vl2p->serverNumber[0], vl2p->serverNumber[1], 
-              vl2p->serverNumber[2], vl2p->serverNumber[3],
-              vl2p->serverPartition[0], vl2p->serverPartition[1], 
-              vl2p->serverPartition[2], vl2p->serverPartition[3]);
-       printf("\t[%4d%4d%4d%4d]\n",
-              vl2p->serverFlags[0], vl2p->serverFlags[1],
-              vl2p->serverFlags[2], vl2p->serverFlags[3]);
-    } else /* if (version >= 3) */ { 
-        if (vl3p->flags == VLFREE)
-          return;
+              vl2p->nextNameHash, vl2p->serverNumber[0],
+              vl2p->serverNumber[1], vl2p->serverNumber[2],
+              vl2p->serverNumber[3], vl2p->serverPartition[0],
+              vl2p->serverPartition[1], vl2p->serverPartition[2],
+              vl2p->serverPartition[3]);
+       printf("\t[%4d%4d%4d%4d]\n", vl2p->serverFlags[0],
+              vl2p->serverFlags[1], vl2p->serverFlags[2],
+              vl2p->serverFlags[3]);
+    } else {                   /* if (version >= 3) */
+
+       if (vl3p->flags == VLFREE)
+           return;
        printf("%s\tPos=%d NextIdHash=[%d:%d:%d] NextNameHash=%d\n",
-              vl3p->name,
-              (oldpos - sizeof(struct vlentry_3)),
+              vl3p->name, (oldpos - sizeof(struct vlentry_3)),
               vl3p->nextIdHash[0], vl3p->nextIdHash[1], vl3p->nextIdHash[2],
               vl3p->nextNameHash);
-       printf("\tRW=%u RO=%u BK=%u CL=%u flags=0x%X lockBy=%d lockTime=%u\n", 
-              vl3p->volumeId[0], vl3p->volumeId[1], vl3p->volumeId[2], vl3p->cloneId,
-              vl3p->flags, vl3p->LockAfsId, vl3p->LockTimestamp);
-       for (i=0; i<OMAXNSERVERS; i++) {
-          if ((vl3p->serverNumber[i] & 0xff) != 0xff) {
-             printf("\tServer=%d Partition=%d flags=%X\n",
-                    vl3p->serverNumber[i], vl3p->serverPartition[i],
-                    vl3p->serverFlags[i]);
-          }
+       printf("\tRW=%u RO=%u BK=%u CL=%u flags=0x%X lockBy=%d lockTime=%u\n",
+              vl3p->volumeId[0], vl3p->volumeId[1], vl3p->volumeId[2],
+              vl3p->cloneId, vl3p->flags, vl3p->LockAfsId,
+              vl3p->LockTimestamp);
+       for (i = 0; i < OMAXNSERVERS; i++) {
+           if ((vl3p->serverNumber[i] & 0xff) != 0xff) {
+               printf("\tServer=%d Partition=%d flags=%X\n",
+                      vl3p->serverNumber[i], vl3p->serverPartition[i],
+                      vl3p->serverFlags[i]);
+           }
        }
     }
     return;
@@ -354,101 +367,102 @@ struct extentaddr *base[VL_MAX_ADDREXTBLKS];
  * If it's not good, then don't read the block in.
  */
 read_mhentries(mh_addr, oldfd)
-  int oldfd;
-  afs_uint32 mh_addr;
+     int oldfd;
+     afs_uint32 mh_addr;
 {
-  afs_uint32 sit, a;
-  afs_int32 code;
-  int j;
-
-  if (readmhentries)
-     return;
-  readmhentries = 1;
-  
-  /* Initialize base pointers */
-  for (j=0; j < VL_MAX_ADDREXTBLKS; j++)
-     base[j] = 0;
-
-  if (!mh_addr)
-     return;
-
-  /* Check if the first extent block is beyond eof. If 
-   * it is, it's not real.
-   */
-  if (mh_addr > dbsize-VL_ADDREXTBLK_SIZE)
-     return;
-
-  /* Now read the first mh extent block */
-  code = lseek(oldfd, mh_addr+64, L_SET);
-  if (code < 0) {
-     perror("seek MH block");
-     exit(1);
-  }
-  base[0] = (struct extentaddr *)malloc(VL_ADDREXTBLK_SIZE);
-  if (!base[0]) {
-     perror("malloc1");
-     exit(1);
-  }
-  code = read(oldfd, (char *)base[0], VL_ADDREXTBLK_SIZE);
-  if (code != VL_ADDREXTBLK_SIZE) {
-     perror("read MH block");
-     free(base[0]);
-     base[0] = 0;
-     exit(1);
-  }
-
-  /* Verify that this block is the right one */
-  if (ntohl(base[0]->ex_flags) != VLCONTBLOCK) {        /* check if flag is correct */
-     free(base[0]);
-     base[0] = 0;
-     return;
-  }
-  
-  /* The first block contains pointers to the other extent blocks.
-   * Check to see if the pointers are good and read them in if they are.
-   */
-  a = mh_addr;
-  for (j=1; j < VL_MAX_ADDREXTBLKS; j++) {
-     if (!base[0]->ex_contaddrs[j])
-        continue;
-
-     sit = ntohl(base[0]->ex_contaddrs[j]);
-
-     /* Every time we allocate a new extent block, it is allocated after 
-      * the previous ones. But it must be before the EOF.
-      */
-     if ((sit < (a + VL_ADDREXTBLK_SIZE)) || (sit > dbsize - VL_ADDREXTBLK_SIZE)) {
-       continue;
-     }
-     
-     /* Read the extent block in */
-     sit += 64;
-     code = lseek(oldfd, sit, L_SET);
-     if (code < 0) {
-        perror("seek MH block");
+    afs_uint32 sit, a;
+    afs_int32 code;
+    int j;
+
+    if (readmhentries)
+       return;
+    readmhentries = 1;
+
+    /* Initialize base pointers */
+    for (j = 0; j < VL_MAX_ADDREXTBLKS; j++)
+       base[j] = 0;
+
+    if (!mh_addr)
+       return;
+
+    /* Check if the first extent block is beyond eof. If 
+     * it is, it's not real.
+     */
+    if (mh_addr > dbsize - VL_ADDREXTBLK_SIZE)
+       return;
+
+    /* Now read the first mh extent block */
+    code = lseek(oldfd, mh_addr + 64, L_SET);
+    if (code < 0) {
+       perror("seek MH block");
        exit(1);
-     }
-     base[j] = (struct extentaddr *)malloc(VL_ADDREXTBLK_SIZE);
-     if (!base[j]) {
-        perror("malloc1");
+    }
+    base[0] = (struct extentaddr *)malloc(VL_ADDREXTBLK_SIZE);
+    if (!base[0]) {
+       perror("malloc1");
        exit(1);
-     }
-     code = read(oldfd, (char *)base[j], VL_ADDREXTBLK_SIZE);
-     if (code != VL_ADDREXTBLK_SIZE) {
-        perror("read MH block");
+    }
+    code = read(oldfd, (char *)base[0], VL_ADDREXTBLK_SIZE);
+    if (code != VL_ADDREXTBLK_SIZE) {
+       perror("read MH block");
+       free(base[0]);
+       base[0] = 0;
        exit(1);
-     }
-                      
-     /* Verify that this block knows its an extent block */
-     if (ntohl(base[j]->ex_flags) != VLCONTBLOCK) {
-        free(base[j]);
-       base[j] = 0;
-       continue;
-     }
-     
-     /* The extent block passed our tests */
-     a = ntohl(base[0]->ex_contaddrs[j]);
-  }
+    }
+
+    /* Verify that this block is the right one */
+    if (ntohl(base[0]->ex_flags) != VLCONTBLOCK) {     /* check if flag is correct */
+       free(base[0]);
+       base[0] = 0;
+       return;
+    }
+
+    /* The first block contains pointers to the other extent blocks.
+     * Check to see if the pointers are good and read them in if they are.
+     */
+    a = mh_addr;
+    for (j = 1; j < VL_MAX_ADDREXTBLKS; j++) {
+       if (!base[0]->ex_contaddrs[j])
+           continue;
+
+       sit = ntohl(base[0]->ex_contaddrs[j]);
+
+       /* Every time we allocate a new extent block, it is allocated after 
+        * the previous ones. But it must be before the EOF.
+        */
+       if ((sit < (a + VL_ADDREXTBLK_SIZE))
+           || (sit > dbsize - VL_ADDREXTBLK_SIZE)) {
+           continue;
+       }
+
+       /* Read the extent block in */
+       sit += 64;
+       code = lseek(oldfd, sit, L_SET);
+       if (code < 0) {
+           perror("seek MH block");
+           exit(1);
+       }
+       base[j] = (struct extentaddr *)malloc(VL_ADDREXTBLK_SIZE);
+       if (!base[j]) {
+           perror("malloc1");
+           exit(1);
+       }
+       code = read(oldfd, (char *)base[j], VL_ADDREXTBLK_SIZE);
+       if (code != VL_ADDREXTBLK_SIZE) {
+           perror("read MH block");
+           exit(1);
+       }
+
+       /* Verify that this block knows its an extent block */
+       if (ntohl(base[j]->ex_flags) != VLCONTBLOCK) {
+           free(base[j]);
+           base[j] = 0;
+           continue;
+       }
+
+       /* The extent block passed our tests */
+       a = ntohl(base[0]->ex_contaddrs[j]);
+    }
 }
 
 /* Follow the SIT pointer in the header (mhaddr) to the multihomed
@@ -459,253 +473,272 @@ read_mhentries(mh_addr, oldfd)
  * Before this can be called, the routine read_mhentries must be called.
  */
 convert_mhentries(oldfd, newfd, header, fromver, tover)
-  int oldfd, newfd;
-  struct vlheader_2 *header;
-  int fromver, tover;
+     int oldfd, newfd;
+     struct vlheader_2 *header;
+     int fromver, tover;
 {
-  afs_uint32 sit;
-  afs_int32 code;
-  int   i, j, modified=0, w;
-  afs_uint32 raddr, addr;
-  struct extentaddr *exp;
-  int basei, index;
-                
-  /* Check if the header says the extent block exists. If
-   * it does, then read_mhentries should have read it in.
-   */
-  if (mhaddr && !base[0]) {
-     printf("Fix Bad base extent block pointer\n");
-     header->SIT = mhaddr = 0;
-  } else if (mhaddr && base[0]) {
-
-     if ((ntohl(header->SIT) != mhaddr) && (tover == 4)) {
-        printf("Fix pointer to first base extent block. Was 0x%x, now 0x%x\n",
-              ntohl(header->SIT), mhaddr);
-        header->SIT = htonl(mhaddr);
-     }
-
-     /* Check if the first block points to itself. If not, then fix it */
-     if (ntohl(base[0]->ex_contaddrs[0]) != mhaddr) {
-        printf("Fix bad pointer in base extent block: Base 0\n");
-       base[0]->ex_contaddrs[0] = htonl(mhaddr);
-       modified = 1;
-     }
-  
-     /* The first block contains pointers to the other extent blocks.
-      * Check to see if the pointers are good.
-      */
-     for (j=1; j < VL_MAX_ADDREXTBLKS; j++) {
-        /* Check if the base extent block says the extent blocks exist.
-        * If it does, then read_mhentries should have read it in.
+    afs_uint32 sit;
+    afs_int32 code;
+    int i, j, modified = 0, w;
+    afs_uint32 raddr, addr;
+    struct extentaddr *exp;
+    int basei, index;
+
+    /* Check if the header says the extent block exists. If
+     * it does, then read_mhentries should have read it in.
+     */
+    if (mhaddr && !base[0]) {
+       printf("Fix Bad base extent block pointer\n");
+       header->SIT = mhaddr = 0;
+    } else if (mhaddr && base[0]) {
+
+       if ((ntohl(header->SIT) != mhaddr) && (tover == 4)) {
+           printf
+               ("Fix pointer to first base extent block. Was 0x%x, now 0x%x\n",
+                ntohl(header->SIT), mhaddr);
+           header->SIT = htonl(mhaddr);
+       }
+
+       /* Check if the first block points to itself. If not, then fix it */
+       if (ntohl(base[0]->ex_contaddrs[0]) != mhaddr) {
+           printf("Fix bad pointer in base extent block: Base 0\n");
+           base[0]->ex_contaddrs[0] = htonl(mhaddr);
+           modified = 1;
+       }
+
+       /* The first block contains pointers to the other extent blocks.
+        * Check to see if the pointers are good.
         */
-        if (base[0]->ex_contaddrs[j] && !base[j]) {
-          printf("Fix bad pointer in base extent block: Base %d\n", j);
-          base[0]->ex_contaddrs[j] = 0;
-          modified = 1;
+       for (j = 1; j < VL_MAX_ADDREXTBLKS; j++) {
+           /* Check if the base extent block says the extent blocks exist.
+            * If it does, then read_mhentries should have read it in.
+            */
+           if (base[0]->ex_contaddrs[j] && !base[j]) {
+               printf("Fix bad pointer in base extent block: Base %d\n", j);
+               base[0]->ex_contaddrs[j] = 0;
+               modified = 1;
+           }
        }
-     }
 
-     /* Now write out the base extent blocks if it changed */
-     if (modified) {
-        code = lseek(newfd, mhaddr+64, L_SET);
-       if (code < 0) {
-          perror("seek MH Block");
-          exit(1);
+       /* Now write out the base extent blocks if it changed */
+       if (modified) {
+           code = lseek(newfd, mhaddr + 64, L_SET);
+           if (code < 0) {
+               perror("seek MH Block");
+               exit(1);
+           }
+           w = write(newfd, (char *)base[0], VL_ADDREXTBLK_SIZE);
+           if (w != VL_ADDREXTBLK_SIZE) {
+               perror("write MH Block");
+               exit(1);
+           }
        }
-       w = write(newfd, (char *)base[0], VL_ADDREXTBLK_SIZE);
-       if (w != VL_ADDREXTBLK_SIZE) {
-          perror("write MH Block");
-          exit(1);
+    }
+
+    /* If we are converting from version 4 to version 3, then 
+     * translate any multihome ptrs in the IpMappedAddr array
+     * to true IP addresses.
+     */
+    if ((fromver == 4) && (tover == 3)) {
+       /* Step through the fileserver addresses in the VLDB header
+        * and convert the pointers back to IP addresses.
+        */
+       for (i = 0; i < 254; i++) {
+           addr = ntohl(header->IpMappedAddr[i]);
+           if (addr && ((addr & 0xff000000) == 0xff000000)) {
+               basei = (addr >> 16) & 0xff;
+               index = addr & 0xffff;
+
+               if ((basei >= VL_ADDREXTBLK_SIZE) || !base[basei]) {
+                   fprintf(stderr,
+                           "Warning: mh entry %d has no IP address; ignored!!\n",
+                           i);
+                   header->IpMappedAddr[i] = 0;
+                   continue;
+               }
+               exp = &base[basei][index];
+
+               /* For now return the first ip address back */
+               for (j = 0; j < VL_MAXIPADDRS_PERMH; j++) {
+                   if (exp->ex_addrs[j]) {
+                       raddr = ntohl(exp->ex_addrs[j]);
+                       break;
+                   }
+               }
+               if (j >= VL_MAXIPADDRS_PERMH) {
+                   fprintf(stderr,
+                           "Warning: mh entry %d has no ip address; ignored!!\n",
+                           i);
+                   raddr = 0;
+               } else {
+                   printf
+                       ("Multi-homed addr: converting to single ip address %d.%d.%d.%d\n",
+                        (raddr >> 24 & 0xff), (raddr >> 16 & 0xff),
+                        (raddr >> 8 & 0xff), (raddr & 0xff));
+               }
+               header->IpMappedAddr[i] = htonl(raddr);
+           }
        }
-     }
-  }
-
-  /* If we are converting from version 4 to version 3, then 
-   * translate any multihome ptrs in the IpMappedAddr array
-   * to true IP addresses.
-   */
-  if ((fromver == 4) && (tover == 3)) {
-     /* Step through the fileserver addresses in the VLDB header
-      * and convert the pointers back to IP addresses.
-      */
-     for (i=0; i<254; i++) {
-        addr = ntohl(header->IpMappedAddr[i]);
-       if (addr && ((addr & 0xff000000) == 0xff000000)) {
-          basei = (addr >> 16) & 0xff;
-          index =  addr        & 0xffff;
-
-          if ((basei >= VL_ADDREXTBLK_SIZE) || !base[basei]) {
-             fprintf(stderr, "Warning: mh entry %d has no IP address; ignored!!\n", i);
-             header->IpMappedAddr[i] = 0;
-             continue;
-          }
-          exp = &base[basei][index];
-
-          /* For now return the first ip address back */
-          for (j=0; j < VL_MAXIPADDRS_PERMH; j++) {
-             if (exp->ex_addrs[j]) {
-                raddr = ntohl(exp->ex_addrs[j]);
-                break;
-             }
-          }
-          if (j >= VL_MAXIPADDRS_PERMH) {
-             fprintf(stderr, "Warning: mh entry %d has no ip address; ignored!!\n", i);
-             raddr = 0;
-          } else {
-             printf("Multi-homed addr: converting to single ip address %d.%d.%d.%d\n",
-                    (raddr>>24 & 0xff), (raddr>>16 & 0xff),
-                    (raddr>>8  & 0xff), (raddr     & 0xff));
-          }
-          header->IpMappedAddr[i] = htonl(raddr);
+       header->SIT = mhaddr = 0;       /* mhinfo block has been removed */
+
+       /* Now step through the hash tables in header updating them.
+        * Because we removed the mh info blocks and some entries they
+        * point to may have changed position.
+        * The VolnameHash
+        */
+       for (i = 0; i < 8191; i++) {
+           header->VolnameHash[i] = Conv4to3(header->VolnameHash[i]);
        }
-     }
-     header->SIT = mhaddr = 0;  /* mhinfo block has been removed */
-
-     /* Now step through the hash tables in header updating them.
-      * Because we removed the mh info blocks and some entries they
-      * point to may have changed position.
-      * The VolnameHash
-      */
-     for (i=0; i<8191; i++) {
-        header->VolnameHash[i] = Conv4to3(header->VolnameHash[i]);
-     }
-     /* The VolidHash */
-     for (i=0; i<3; i++) {
-        for (j=0; j<8191; j++) {
-          header->VolidHash[i][j] = Conv4to3(header->VolidHash[i][j]);
+       /* The VolidHash */
+       for (i = 0; i < 3; i++) {
+           for (j = 0; j < 8191; j++) {
+               header->VolidHash[i][j] = Conv4to3(header->VolidHash[i][j]);
+           }
        }
-     }
 
-     /* Update eofptr to take into account the removal of the mhinfo blocks */
-     header->vital_header.eofPtr = htonl(Conv4to3(dbsize));
-  }
+       /* Update eofptr to take into account the removal of the mhinfo blocks */
+       header->vital_header.eofPtr = htonl(Conv4to3(dbsize));
+    }
 }
 
 
 convert_header(ofd, fd, fromv, tov, fromaddr, toaddr)
-    int ofd, fd, fromv, tov;
-    char *fromaddr, *toaddr;
+     int ofd, fd, fromv, tov;
+     char *fromaddr, *toaddr;
 {
-  struct vlheader_1 *tvp1; 
-  struct vlheader_2 *tvp2;
-  int i,j,diff, w;
-
-  if (fromv == 1) {
-     if (tov == 1) {
-        memcpy(toaddr, fromaddr, sizeof(struct vlheader_1));
-       tvp1 = (struct vlheader_1 *) toaddr;
-       
-       w = write (fd, tvp1, sizeof(struct vlheader_1));
-       if (w != sizeof(struct vlheader_1)) {
-          printf("Write of header failed %d; error %u\n", w, errno);
-          exit(1);
-       }
+    struct vlheader_1 *tvp1;
+    struct vlheader_2 *tvp2;
+    int i, j, diff, w;
 
-       /* for garbage-collecting... */
-       for (i=0;i<31; i++)
-          tvp1->IpMappedAddr[i] = 0;
-           
-     } else if (tov == 2 || tov == 3) {
-        tvp1 = (struct vlheader_1 *) fromaddr;
-       tvp2 = (struct vlheader_2 *) toaddr;
-       memset(tvp2, 0, sizeof(struct vlheader_2));
-       tvp2->vital_header.vldbversion = htonl(tov);
-       tvp2->vital_header.headersize = htonl(sizeof(struct vlheader_2));
-       diff = ntohl(tvp2->vital_header.headersize) -
-              ntohl(tvp1->vital_header.headersize);
-       if (ntohl(tvp1->vital_header.freePtr))
-          tvp2->vital_header.freePtr = htonl(ntohl(tvp1->vital_header.freePtr) + diff);
-       if (ntohl(tvp1->vital_header.eofPtr))
-          tvp2->vital_header.eofPtr =  htonl(ntohl(tvp1->vital_header.eofPtr) + diff);
-       tvp2->vital_header.allocs = tvp1->vital_header.allocs;
-       tvp2->vital_header.frees = tvp1->vital_header.frees;
-       tvp2->vital_header.MaxVolumeId = tvp1->vital_header.MaxVolumeId;        
-       for (i=0;i<3;i++)
-          tvp2->vital_header.totalEntries[i] = tvp1->vital_header.totalEntries[i];
-
-       for (i=0;i<31;i++)
-          tvp2->IpMappedAddr[i] = tvp1->IpMappedAddr[i];
-
-       for (i=0;i<8191;i++) {
-          if (ntohl(tvp1->VolnameHash[i]))
-            tvp2->VolnameHash[i] = htonl(ntohl(tvp1->VolnameHash[i]) + diff);
-       }
+    if (fromv == 1) {
+       if (tov == 1) {
+           memcpy(toaddr, fromaddr, sizeof(struct vlheader_1));
+           tvp1 = (struct vlheader_1 *)toaddr;
+
+           w = write(fd, tvp1, sizeof(struct vlheader_1));
+           if (w != sizeof(struct vlheader_1)) {
+               printf("Write of header failed %d; error %u\n", w, errno);
+               exit(1);
+           }
 
-       for (i=0;i<3;i++) {
-          for (j=0;j<8191;j++) {
-             if (ntohl(tvp1->VolidHash[i][j]))
-                tvp2->VolidHash[i][j] = htonl(ntohl(tvp1->VolidHash[i][j]) + diff);
-          }
-       }
-     
-       w = write (fd, tvp2, sizeof(struct vlheader_2));
-       if (w != sizeof(struct vlheader_2)) {
-          printf("Write of header failed %d; error %u\n", w, errno);
-          exit(1);
-       }
-       
-       /* for garbage-collecting... */
-       for (i=0;i<31; i++)
-          tvp2->IpMappedAddr[i] = 0;
-     } else 
-        return EINVAL;
-  } else if (fromv == 2 || fromv == 3 || fromv == 4) {
-     if (tov == 2 || tov == 3 || tov == 4) {
-        memcpy(toaddr, fromaddr, sizeof(struct vlheader_2));
-       tvp2 = (struct vlheader_2 *) toaddr;
-       tvp2->vital_header.vldbversion = htonl(tov);
-       w = write (fd, tvp2, sizeof(struct vlheader_2));
-       if (w != sizeof(struct vlheader_2)) {
-          printf("Write of header failed %d; error %u\n", w, errno);
-          exit(1);
-       }
+           /* for garbage-collecting... */
+           for (i = 0; i < 31; i++)
+               tvp1->IpMappedAddr[i] = 0;
+
+       } else if (tov == 2 || tov == 3) {
+           tvp1 = (struct vlheader_1 *)fromaddr;
+           tvp2 = (struct vlheader_2 *)toaddr;
+           memset(tvp2, 0, sizeof(struct vlheader_2));
+           tvp2->vital_header.vldbversion = htonl(tov);
+           tvp2->vital_header.headersize = htonl(sizeof(struct vlheader_2));
+           diff =
+               ntohl(tvp2->vital_header.headersize) -
+               ntohl(tvp1->vital_header.headersize);
+           if (ntohl(tvp1->vital_header.freePtr))
+               tvp2->vital_header.freePtr =
+                   htonl(ntohl(tvp1->vital_header.freePtr) + diff);
+           if (ntohl(tvp1->vital_header.eofPtr))
+               tvp2->vital_header.eofPtr =
+                   htonl(ntohl(tvp1->vital_header.eofPtr) + diff);
+           tvp2->vital_header.allocs = tvp1->vital_header.allocs;
+           tvp2->vital_header.frees = tvp1->vital_header.frees;
+           tvp2->vital_header.MaxVolumeId = tvp1->vital_header.MaxVolumeId;
+           for (i = 0; i < 3; i++)
+               tvp2->vital_header.totalEntries[i] =
+                   tvp1->vital_header.totalEntries[i];
+
+           for (i = 0; i < 31; i++)
+               tvp2->IpMappedAddr[i] = tvp1->IpMappedAddr[i];
+
+           for (i = 0; i < 8191; i++) {
+               if (ntohl(tvp1->VolnameHash[i]))
+                   tvp2->VolnameHash[i] =
+                       htonl(ntohl(tvp1->VolnameHash[i]) + diff);
+           }
 
-     } else if (tov == 1) {
-        tvp2 = (struct vlheader_2 *) fromaddr;
-       tvp1 = (struct vlheader_1 *) toaddr;
-       memset(tvp1, 0, sizeof(struct vlheader_1));
-       tvp1->vital_header.vldbversion = htonl(1);
-       tvp1->vital_header.headersize = htonl(sizeof(struct vlheader_1));
-       diff = ntohl(tvp1->vital_header.headersize) - ntohl(tvp2->vital_header.headersize);
-       if (ntohl(tvp2->vital_header.freePtr))
-          tvp1->vital_header.freePtr = htonl(ntohl(tvp2->vital_header.freePtr) + diff);
-       if (ntohl(tvp2->vital_header.eofPtr))
-          tvp1->vital_header.eofPtr =  htonl(ntohl(tvp2->vital_header.eofPtr) + diff);
-       tvp1->vital_header.allocs =  tvp2->vital_header.allocs;
-       tvp1->vital_header.frees = tvp2->vital_header.frees;
-       tvp1->vital_header.MaxVolumeId = tvp2->vital_header.MaxVolumeId;        
-       for (i=0;i<3;i++)
-          tvp1->vital_header.totalEntries[i] = tvp2->vital_header.totalEntries[i];
-       
-       for (i=0;i<31;i++)
-          tvp1->IpMappedAddr[i] = tvp2->IpMappedAddr[i];
-       
-       for (i=0;i<8191;i++) {
-          if (ntohl(tvp2->VolnameHash[i]))
-             tvp1->VolnameHash[i] = htonl(ntohl(tvp2->VolnameHash[i]) + diff);
-       }
+           for (i = 0; i < 3; i++) {
+               for (j = 0; j < 8191; j++) {
+                   if (ntohl(tvp1->VolidHash[i][j]))
+                       tvp2->VolidHash[i][j] =
+                           htonl(ntohl(tvp1->VolidHash[i][j]) + diff);
+               }
+           }
 
-       for (i=0;i<3;i++) {
-          for (j=0;j<8191;j++) {
-             if (ntohl(tvp2->VolidHash[i][j]))
-                tvp1->VolidHash[i][j] = htonl(ntohl(tvp2->VolidHash[i][j]) + diff);
-          }
-       }
+           w = write(fd, tvp2, sizeof(struct vlheader_2));
+           if (w != sizeof(struct vlheader_2)) {
+               printf("Write of header failed %d; error %u\n", w, errno);
+               exit(1);
+           }
 
-       w = write (fd, tvp1, sizeof(struct vlheader_1));
-       if (w != sizeof(struct vlheader_2)) {
-          printf("Write of header failed %d; error %u\n", w, errno);
-          exit(1);
-       }
-       
-       /* for garbage-collecting... */
-       for (i=0;i<31; i++)
-          tvp1->IpMappedAddr[i] = 0;
-     } else 
-        return EINVAL;
-  } else 
-     return EINVAL;
-  return 0;
+           /* for garbage-collecting... */
+           for (i = 0; i < 31; i++)
+               tvp2->IpMappedAddr[i] = 0;
+       } else
+           return EINVAL;
+    } else if (fromv == 2 || fromv == 3 || fromv == 4) {
+       if (tov == 2 || tov == 3 || tov == 4) {
+           memcpy(toaddr, fromaddr, sizeof(struct vlheader_2));
+           tvp2 = (struct vlheader_2 *)toaddr;
+           tvp2->vital_header.vldbversion = htonl(tov);
+           w = write(fd, tvp2, sizeof(struct vlheader_2));
+           if (w != sizeof(struct vlheader_2)) {
+               printf("Write of header failed %d; error %u\n", w, errno);
+               exit(1);
+           }
+
+       } else if (tov == 1) {
+           tvp2 = (struct vlheader_2 *)fromaddr;
+           tvp1 = (struct vlheader_1 *)toaddr;
+           memset(tvp1, 0, sizeof(struct vlheader_1));
+           tvp1->vital_header.vldbversion = htonl(1);
+           tvp1->vital_header.headersize = htonl(sizeof(struct vlheader_1));
+           diff =
+               ntohl(tvp1->vital_header.headersize) -
+               ntohl(tvp2->vital_header.headersize);
+           if (ntohl(tvp2->vital_header.freePtr))
+               tvp1->vital_header.freePtr =
+                   htonl(ntohl(tvp2->vital_header.freePtr) + diff);
+           if (ntohl(tvp2->vital_header.eofPtr))
+               tvp1->vital_header.eofPtr =
+                   htonl(ntohl(tvp2->vital_header.eofPtr) + diff);
+           tvp1->vital_header.allocs = tvp2->vital_header.allocs;
+           tvp1->vital_header.frees = tvp2->vital_header.frees;
+           tvp1->vital_header.MaxVolumeId = tvp2->vital_header.MaxVolumeId;
+           for (i = 0; i < 3; i++)
+               tvp1->vital_header.totalEntries[i] =
+                   tvp2->vital_header.totalEntries[i];
+
+           for (i = 0; i < 31; i++)
+               tvp1->IpMappedAddr[i] = tvp2->IpMappedAddr[i];
+
+           for (i = 0; i < 8191; i++) {
+               if (ntohl(tvp2->VolnameHash[i]))
+                   tvp1->VolnameHash[i] =
+                       htonl(ntohl(tvp2->VolnameHash[i]) + diff);
+           }
+
+           for (i = 0; i < 3; i++) {
+               for (j = 0; j < 8191; j++) {
+                   if (ntohl(tvp2->VolidHash[i][j]))
+                       tvp1->VolidHash[i][j] =
+                           htonl(ntohl(tvp2->VolidHash[i][j]) + diff);
+               }
+           }
+
+           w = write(fd, tvp1, sizeof(struct vlheader_1));
+           if (w != sizeof(struct vlheader_2)) {
+               printf("Write of header failed %d; error %u\n", w, errno);
+               exit(1);
+           }
+
+           /* for garbage-collecting... */
+           for (i = 0; i < 31; i++)
+               tvp1->IpMappedAddr[i] = 0;
+       } else
+           return EINVAL;
+    } else
+       return EINVAL;
+    return 0;
 }
 
 
@@ -718,22 +751,24 @@ convert_header(ofd, fd, fromv, tov, fromaddr, toaddr)
  *
  * Before this can be called, the routine read_mhentries must be called.
  */
-static afs_int32 Conv4to3(addr)
-  afs_int32  addr;
+static afs_int32
+Conv4to3(addr)
+     afs_int32 addr;
 {
-  afs_int32 raddr;
-  int i;
+    afs_int32 raddr;
+    int i;
 
-  if (!base[0] || !addr)
-     return(addr);
+    if (!base[0] || !addr)
+       return (addr);
 
-  raddr = addr;
-  for (i=0; i<VL_MAX_ADDREXTBLKS; i++) {
-     if (base[i] && base[0]->ex_contaddrs[i] && (addr > base[0]->ex_contaddrs[i]))
-        raddr -= VL_ADDREXTBLK_SIZE;
-  }
+    raddr = addr;
+    for (i = 0; i < VL_MAX_ADDREXTBLKS; i++) {
+       if (base[i] && base[0]->ex_contaddrs[i]
+           && (addr > base[0]->ex_contaddrs[i]))
+           raddr -= VL_ADDREXTBLK_SIZE;
+    }
 
-  return(raddr);
+    return (raddr);
 }
 
 /* this only works because the vlheader struct is essentially the same 
@@ -743,9 +778,9 @@ static afs_int32 Conv4to3(addr)
 
 static int
 convert_vlentry(new, fromvers, tovers, oldheader, newheader, vlentryp)
-    int new, fromvers, tovers;
-    struct vlheader_1 *oldheader, *newheader;  /* close enough */ 
-    struct vlentry_1 *vlentryp;                 /* 1 and 2 are identical */
+     int new, fromvers, tovers;
+     struct vlheader_1 *oldheader, *newheader; /* close enough */
+     struct vlentry_1 *vlentryp;       /* 1 and 2 are identical */
 {
     int diff, i, s, w;
     struct vlentry_3 *vl3p = (struct vlentry_3 *)vlentryp;
@@ -755,14 +790,15 @@ convert_vlentry(new, fromvers, tovers, oldheader, newheader, vlentryp)
      * Otherwise, don't keep it (version 3 and earlier don't have them).
      */
     if (vl3p->flags == VLCONTBLOCK) {
-       if (tovers >= 4) {
-          w = write (new, vlentryp, VL_ADDREXTBLK_SIZE);
-          if (w != VL_ADDREXTBLK_SIZE) {
-            printf("Write of mh info block failed %d; error %u\n", w, errno);
-            exit(1);
-         }
-       }
-       return 0;
+       if (tovers >= 4) {
+           w = write(new, vlentryp, VL_ADDREXTBLK_SIZE);
+           if (w != VL_ADDREXTBLK_SIZE) {
+               printf("Write of mh info block failed %d; error %u\n", w,
+                      errno);
+               exit(1);
+           }
+       }
+       return 0;
     }
 
     if (fromvers == 2 && tovers == 3) {
@@ -774,7 +810,7 @@ convert_vlentry(new, fromvers, tovers, oldheader, newheader, vlentryp)
        vl.flags = vlentryp->flags;
        vl.LockAfsId = vlentryp->LockAfsId;
        vl.LockTimestamp = vlentryp->LockTimestamp;
-       vl.cloneId = vlentryp->cloneId; 
+       vl.cloneId = vlentryp->cloneId;
        vl.nextIdHash[0] = vlentryp->nextIdHash[0];
        vl.nextIdHash[1] = vlentryp->nextIdHash[1];
        vl.nextIdHash[2] = vlentryp->nextIdHash[2];
@@ -785,28 +821,29 @@ convert_vlentry(new, fromvers, tovers, oldheader, newheader, vlentryp)
            vl.serverPartition[i] = vlentryp->serverPartition[i];
            vl.serverFlags[i] = vlentryp->serverFlags[i];
        }
-       for (;i < 13; i++) 
-           vl.serverNumber[i] = vl.serverPartition[i] = vl.serverFlags[i] = BADSERVERID;
-       w = write (new, &vl, sizeof(struct vlentry_3));
+       for (; i < 13; i++)
+           vl.serverNumber[i] = vl.serverPartition[i] = vl.serverFlags[i] =
+               BADSERVERID;
+       w = write(new, &vl, sizeof(struct vlentry_3));
        if (w != sizeof(struct vlentry_3)) {
-          printf("Write of entry failed %d; error %u\n", w, errno);
-          exit(1);
+           printf("Write of entry failed %d; error %u\n", w, errno);
+           exit(1);
        }
 
        return 0;
-    } else if  (fromvers == 3 && tovers == 2) {
+    } else if (fromvers == 3 && tovers == 2) {
        struct vlentry_2 vl;
-       struct vlentry_3 *xnvlentry = (struct vlentry_3 *) vlentryp;
+       struct vlentry_3 *xnvlentry = (struct vlentry_3 *)vlentryp;
 
-       memset((char *)&vl, 0, sizeof (struct vlentry_2));
+       memset((char *)&vl, 0, sizeof(struct vlentry_2));
        vl.volumeId[0] = xnvlentry->volumeId[0];
        vl.volumeId[1] = xnvlentry->volumeId[1];
        vl.volumeId[2] = xnvlentry->volumeId[2];
        vl.flags = xnvlentry->flags;
        vl.LockAfsId = xnvlentry->LockAfsId;
        vl.LockTimestamp = xnvlentry->LockTimestamp;
-       vl.cloneId = xnvlentry->cloneId;        
-       for (i=0;i<3;i++) {
+       vl.cloneId = xnvlentry->cloneId;
+       for (i = 0; i < 3; i++) {
            if (ntohl(xnvlentry->nextIdHash[i]))
                vl.nextIdHash[i] = xnvlentry->nextIdHash[i];
        }
@@ -818,32 +855,36 @@ convert_vlentry(new, fromvers, tovers, oldheader, newheader, vlentryp)
            vl.serverPartition[i] = xnvlentry->serverPartition[i];
            vl.serverFlags[i] = xnvlentry->serverFlags[i];
        }
-       w = write (new, &vl, sizeof(struct vlentry_2));
+       w = write(new, &vl, sizeof(struct vlentry_2));
        if (w != sizeof(struct vlentry_2)) {
-          printf("Write of entry failed %d; error %u\n", w, errno);
-          exit(1);
+           printf("Write of entry failed %d; error %u\n", w, errno);
+           exit(1);
        }
        return 0;
-    } else if  (fromvers == 3 && tovers == 1) {
+    } else if (fromvers == 3 && tovers == 1) {
        struct vlentry_1 vl;
-       struct vlentry_3 *xnvlentry = (struct vlentry_3 *) vlentryp;
-
-       diff = (tovers == 1 ? sizeof(struct vlheader_1) : sizeof(struct vlheader_2))
-           - (fromvers == 1 ? sizeof(struct vlheader_1) : sizeof(struct vlheader_2));
-       memset((char *)&vl, 0, sizeof (struct vlentry_1));
+       struct vlentry_3 *xnvlentry = (struct vlentry_3 *)vlentryp;
+
+       diff =
+           (tovers ==
+            1 ? sizeof(struct vlheader_1) : sizeof(struct vlheader_2))
+           - (fromvers ==
+              1 ? sizeof(struct vlheader_1) : sizeof(struct vlheader_2));
+       memset((char *)&vl, 0, sizeof(struct vlentry_1));
        vl.volumeId[0] = xnvlentry->volumeId[0];
        vl.volumeId[1] = xnvlentry->volumeId[1];
        vl.volumeId[2] = xnvlentry->volumeId[2];
        vl.flags = xnvlentry->flags;
        vl.LockAfsId = xnvlentry->LockAfsId;
        vl.LockTimestamp = xnvlentry->LockTimestamp;
-       vl.cloneId = xnvlentry->cloneId;        
-       for (i=0;i<3;i++) {
+       vl.cloneId = xnvlentry->cloneId;
+       for (i = 0; i < 3; i++) {
            if (ntohl(xnvlentry->nextIdHash[i]))
-               vl.nextIdHash[i] = htonl(ntohl(xnvlentry->nextIdHash[i]) + diff);
+               vl.nextIdHash[i] =
+                   htonl(ntohl(xnvlentry->nextIdHash[i]) + diff);
        }
        if (ntohl(xnvlentry->nextNameHash))
-           vl.nextNameHash = htonl(ntohl(xnvlentry->nextNameHash) + diff);     
+           vl.nextNameHash = htonl(ntohl(xnvlentry->nextNameHash) + diff);
 
        memcpy(vl.name, xnvlentry->name, 65);
        for (i = 0; i < 8; i++) {
@@ -851,92 +892,96 @@ convert_vlentry(new, fromvers, tovers, oldheader, newheader, vlentryp)
            vl.serverPartition[i] = xnvlentry->serverPartition[i];
            vl.serverFlags[i] = xnvlentry->serverFlags[i];
        }
-       for (i=0;i<8;i++) {
+       for (i = 0; i < 8; i++) {
            s = xnvlentry->serverNumber[i];
            if (s != 255) {
-               if (s > MaxServers[tovers-1]) {
-                   fprintf(stderr, "%s: Too Many Servers (%d) for this version!\n",pn,s+1);
+               if (s > MaxServers[tovers - 1]) {
+                   fprintf(stderr,
+                           "%s: Too Many Servers (%d) for this version!\n",
+                           pn, s + 1);
                    exit(-1);
                } else
                    newheader->IpMappedAddr[s] = oldheader->IpMappedAddr[s];
            }
        }
-       w = write (new, &vl, sizeof(struct vlentry_1));
+       w = write(new, &vl, sizeof(struct vlentry_1));
        if (w != sizeof(struct vlentry_1)) {
-          printf("Write of entry failed %d; error %u\n", w, errno);
-          exit(1);
+           printf("Write of entry failed %d; error %u\n", w, errno);
+           exit(1);
        }
        return 0;
-    } else if  (fromvers == 4 && tovers == 3) {
+    } else if (fromvers == 4 && tovers == 3) {
        struct vlentry_3 vl;
        /* We are converting from version 4 to 3. In this conversion, mh info
         * blocks go away and all vlentries after them move up in the vldb file.
         * When this happens, the linked list pointers need to be updated.
         */
        memcpy(&vl, vlentryp, sizeof(vl));
-       for (i=0; i<3; i++) {
-          vl.nextIdHash[i] = Conv4to3(vl.nextIdHash[i]);
+       for (i = 0; i < 3; i++) {
+           vl.nextIdHash[i] = Conv4to3(vl.nextIdHash[i]);
        }
        vl.nextNameHash = Conv4to3(vl.nextNameHash);
 
-       w = write (new, &vl, sizeof(vl));
+       w = write(new, &vl, sizeof(vl));
        if (w != sizeof(vl)) {
-          printf("Write of entry failed %d; error %u\n", w, errno);
-          exit(1);
+           printf("Write of entry failed %d; error %u\n", w, errno);
+           exit(1);
        }
        return 0;
     }
 
     if (tovers == 1) {
-       w = write (new, vlentryp, sizeof(struct vlentry_1));
-       if (w != sizeof(struct vlentry_1)) {
-         printf("Write of entry failed %d; error %u\n", w, errno);
-         exit(1);
-       }
+       w = write(new, vlentryp, sizeof(struct vlentry_1));
+       if (w != sizeof(struct vlentry_1)) {
+           printf("Write of entry failed %d; error %u\n", w, errno);
+           exit(1);
+       }
     } else if (tovers == 2) {
-       w = write (new, vlentryp, sizeof(struct vlentry_2));
-       if (w != sizeof(struct vlentry_2)) {
-         printf("Write of entry failed %d; error %u\n", w, errno);
-         exit(1);
-       }
+       w = write(new, vlentryp, sizeof(struct vlentry_2));
+       if (w != sizeof(struct vlentry_2)) {
+           printf("Write of entry failed %d; error %u\n", w, errno);
+           exit(1);
+       }
     } else if (tovers == 3 || tovers == 4) {
-       w = write (new, vlentryp, sizeof(struct vlentry_3));
-       if (w != sizeof(struct vlentry_3)) {
-         printf("Write of entry failed %d; error %u\n", w, errno);
-         exit(1);
-       }
+       w = write(new, vlentryp, sizeof(struct vlentry_3));
+       if (w != sizeof(struct vlentry_3)) {
+           printf("Write of entry failed %d; error %u\n", w, errno);
+           exit(1);
+       }
     } else {
-       perror(pn);
-       fprintf(stderr, "Skipping vlentry write - db corrupted - bad toversion %d\n",
-              tovers);
+       perror(pn);
+       fprintf(stderr,
+               "Skipping vlentry write - db corrupted - bad toversion %d\n",
+               tovers);
     }
-      
-    return; 
+
+    return;
 }
 
 static int
 rewrite_header(new, tovers, newheader)
-    int new, tovers;
-    char *newheader;
+     int new, tovers;
+     char *newheader;
 {
     int pos, w, towrite;
 
-    pos = lseek (new, 64, L_SET);            /* leave room for ubik */
+    pos = lseek(new, 64, L_SET);       /* leave room for ubik */
     if (pos == -1) {
        perror(pn);
-       fprintf(stderr, "%s: no garbage colection\n",pn);
+       fprintf(stderr, "%s: no garbage colection\n", pn);
        return;
     } else if (pos != 64) {
-       fprintf(stderr,"%s: Can't rewind: no garbage collection\n",pn);
+       fprintf(stderr, "%s: Can't rewind: no garbage collection\n", pn);
        return;
     }
 
-    towrite = ((tovers == 1) ? sizeof(struct vlheader_1) : 
-                              sizeof(struct vlheader_2));
-    w = write (new, newheader, towrite);
+    towrite =
+       ((tovers ==
+         1) ? sizeof(struct vlheader_1) : sizeof(struct vlheader_2));
+    w = write(new, newheader, towrite);
     if (w != towrite) {
-       printf("Write of entry failed %d; error %u\n", w, errno);
-       exit(1);
+       printf("Write of entry failed %d; error %u\n", w, errno);
+       exit(1);
     }
 
     return;
@@ -946,21 +991,24 @@ rewrite_header(new, tovers, newheader)
 #include "AFS_component_version_number.c"
 
 main(argc, argv)
-    int argc;
-    char **argv;
+     int argc;
+     char **argv;
 {
     register struct cmd_syndesc *ts;
     afs_int32 code;
-    
+
     ts = cmd_CreateSyntax("initcmd", handleit, 0, "optional");
     cmd_AddParm(ts, "-to", CMD_SINGLE, CMD_OPTIONAL, "goal version");
     cmd_AddParm(ts, "-from", CMD_SINGLE, CMD_OPTIONAL, "current version");
     cmd_AddParm(ts, "-path", CMD_SINGLE, CMD_OPTIONAL, "pathname");
-    cmd_AddParm(ts, "-showversion", CMD_FLAG, CMD_OPTIONAL, "Just display version of current vldb");
-    cmd_AddParm(ts, "-dumpvldb", CMD_FLAG, CMD_OPTIONAL, "display all vldb entries");
+    cmd_AddParm(ts, "-showversion", CMD_FLAG, CMD_OPTIONAL,
+               "Just display version of current vldb");
+    cmd_AddParm(ts, "-dumpvldb", CMD_FLAG, CMD_OPTIONAL,
+               "display all vldb entries");
 
 #ifdef DEBUG
-    cmd_AddParm(ts, "-noGC", CMD_FLAG, CMD_OPTIONAL, "Don't do garbage collection");
+    cmd_AddParm(ts, "-noGC", CMD_FLAG, CMD_OPTIONAL,
+               "Don't do garbage collection");
 #endif /* DEBUG */
 
     dbPath = AFSDIR_SERVER_VLDB_FILEPATH;