#ifndef lint
static const char rcsid[] =
- "$Id: restore.c,v 1.27 2002/02/04 11:18:46 stelian Exp $";
+ "$Id: restore.c,v 1.30 2002/07/19 14:57:40 stelian Exp $";
#endif /* not lint */
#include <config.h>
*/
/* ARGSUSED */
long
-deletefile(char *name, dump_ino_t ino, int type)
+deletefile(char *name, dump_ino_t ino, UNUSED(int type))
{
long descend = hflag ? GOOD : FAIL;
struct entry *ep;
struct entry *ep;
dump_ino_t first;
long curvol;
+ int doremove;
if (command == 'R') {
Vprintf(stdout, "Continue extraction of new leaves\n");
* be removed since its type may change from one leaf type
* to another (e.g. "file" to "character special").
*/
- if ((ep->e_flags & EXTRACT) != 0) {
- removeleaf(ep);
- ep->e_flags &= ~REMOVED;
- }
- (void) extractfile(myname(ep));
+ if ((ep->e_flags & EXTRACT) != 0)
+ doremove = 1;
+ else
+ doremove = 0;
+ (void) extractfile(ep, doremove);
ep->e_flags &= ~(NEW|EXTRACT);
/*
* We checkpoint the restore after every tape reel, so
if (GetTapePos(&curtpos) == 0)
msg("before resync at tape position %lld (%ld, %ld, %s)\n", curtpos, next, curfile.ino, curfile.name);
#endif
-msg("bobo1\n");
ReReadInodeFromTape(next);
#ifdef DEBUG_QFA
-msg("bobo2\n");
- if (GetTapePos(&curtpos) == 0) {
-msg("bobo3\n");
+ if (GetTapePos(&curtpos) == 0)
msg("after resync at tape position %lld (%ld, %ld, %s)\n", curtpos, next, curfile.ino, curfile.name);
-msg("bobo4\n");
- }
#endif
}
}
if (volinfo[1] == ROOTINO) {
int i, goodvol = 1;
- for (i = 1; i < TP_NINOS && volinfo[i] != 0; ++i)
+ for (i = 1; i < (int)TP_NINOS && volinfo[i] != 0; ++i)
if (volinfo[i] < next)
goodvol = i;
msg("inode %ld at tapepos %ld\n", curfile.ino, curtapepos);
#endif
sprintf(gTps, "%ld\t%ld\t%lld\n", (unsigned long)curfile.ino, volno, curtapepos);
- if (write(gTapeposfd, gTps, strlen(gTps)) != strlen(gTps))
+ if (write(gTapeposfd, gTps, strlen(gTps)) != (ssize_t)strlen(gTps))
warn("error writing tapepos file.\n");
skipfile();
}
else {
msg("restoring %s\n", myname(ep));
#endif /* USE_QFA */
- (void) extractfile(myname(ep));
+ (void) extractfile(ep, 0);
#ifdef USE_QFA
}
#endif /* USE_QFA */