]> git.wh0rd.org - dump.git/blobdiff - restore/utilities.c
Relicensed dump/restore under the revised BSD license, as per ftp://ftp.cs.berkeley...
[dump.git] / restore / utilities.c
index 4960b9ab4e3a5e8d9757c9d546e4b3de99df5ef0..838ebe76ec284e9089a3cdf117a41ae8a2846d10 100644 (file)
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
@@ -41,7 +37,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: utilities.c,v 1.18 2002/01/25 14:59:53 stelian Exp $";
+       "$Id: utilities.c,v 1.22 2003/03/30 15:40:40 stelian Exp $";
 #endif /* not lint */
 
 #include <config.h>
@@ -78,7 +74,7 @@ static const char rcsid[] =
 void
 pathcheck(char *name)
 {
-       register char *cp;
+       char *cp;
        struct entry *ep;
        char *start;
 
@@ -236,7 +232,7 @@ linkit(char *existing, char *new, int type)
 
                if (!Nflag && (ret = link(existing, new)) < 0) {
 
-#ifndef __linux__
+#if !defined(__linux__) && !defined(sunos)
                        struct stat s;
 
                        /*
@@ -276,7 +272,7 @@ linkit(char *existing, char *new, int type)
        return (GOOD);
 }
 
-#ifndef        __linux__
+#if !defined(__linux__) && !defined(sunos)
 /*
  * Create a whiteout.
  */
@@ -319,7 +315,7 @@ delwhiteout(struct entry *ep)
 dump_ino_t
 lowerbnd(dump_ino_t start)
 {
-       register struct entry *ep;
+       struct entry *ep;
 
        for ( ; start < maxino; start++) {
                ep = lookupino(start);
@@ -337,7 +333,7 @@ lowerbnd(dump_ino_t start)
 dump_ino_t
 upperbnd(dump_ino_t start)
 {
-       register struct entry *ep;
+       struct entry *ep;
 
        for ( ; start > ROOTINO; start--) {
                ep = lookupino(start);
@@ -543,3 +539,25 @@ Inode2Tapepos(dump_ino_t ino, long *tnum, long long *tpos, int exactmatch)
        return 0;
 }
 #endif /* USE_QFA */
+
+void resizemaps(dump_ino_t oldmax, dump_ino_t newmax)
+{
+       char *map;
+
+       if (usedinomap) {
+               map = calloc((unsigned)1, (unsigned)howmany(newmax, NBBY));
+               if (map == NULL)
+                       errx(1, "no memory for active inode map");
+               memcpy(map, usedinomap, howmany(oldmax, NBBY));
+               free(usedinomap);
+               usedinomap = map;
+       }
+       if (dumpmap) {
+               map = calloc((unsigned)1, (unsigned)howmany(newmax, NBBY));
+               if (map == NULL)
+                       errx(1, "no memory for file dump list");
+               memcpy(map, dumpmap, howmany(oldmax, NBBY));
+               free(dumpmap);
+               dumpmap = map;
+       }
+}