#ifndef lint
static const char rcsid[] =
- "$Id: tape.c,v 1.26 2001/03/18 15:35:44 stelian Exp $";
+ "$Id: tape.c,v 1.31 2001/03/27 08:09:21 stelian Exp $";
#endif /* not lint */
#include <config.h>
+#include <errno.h>
+#include <compaterr.h>
+#include <setjmp.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
#include <sys/param.h>
#include <sys/file.h>
#include <sys/mtio.h>
#include <sys/time.h>
#include <time.h>
#include <linux/ext2_fs.h>
+#include <ext2fs/ext2fs.h>
#include <bsdcompat.h>
#else /* __linux__ */
#include <ufs/ufs/dinode.h>
#endif /* __linux__ */
#include <protocols/dumprestore.h>
-#include <errno.h>
-#include <compaterr.h>
-#include <setjmp.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
#ifdef HAVE_ZLIB
#include <zlib.h>
#endif /* HAVE_ZLIB */
-#ifdef __linux__
-#include <ext2fs/ext2fs.h>
-#endif
-
#include "restore.h"
#include "extern.h"
#include "pathnames.h"
goto again;
}
if (tmpbuf.c_date != dumpdate || tmpbuf.c_ddate != dumptime) {
-#ifdef __linux__
fprintf(stderr, "Wrong dump date\n\tgot: %s",
ctime4(&tmpbuf.c_date));
- fprintf(stderr, "\twanted: %s", ctime4(&dumpdate));
-#else
- fprintf(stderr, "Wrong dump date\n\tgot: %s",
- ctime(&tmpbuf.c_date));
fprintf(stderr, "\twanted: %s", ctime(&dumpdate));
-#endif
volno = 0;
haderror = 1;
goto again;
void
printdumpinfo(void)
{
-#ifdef __linux__
fprintf(stdout, "Dump date: %s", ctime4(&spcl.c_date));
fprintf(stdout, "Dumped from: %s",
(spcl.c_ddate == 0) ? "the epoch\n" : ctime4(&spcl.c_ddate));
-#else
- fprintf(stdout, "Dump date: %s", ctime(&spcl.c_date));
- fprintf(stdout, "Dumped from: %s",
- (spcl.c_ddate == 0) ? "the epoch\n" : ctime(&spcl.c_ddate));
-#endif
if (spcl.c_host[0] == '\0')
return;
fprintf(stdout, "Level %d dump of %s on %s:%s\n",
panic("cannot delete tmp file %s: %s\n",
tmpfile, strerror(errno));
}
- if ((ofile = creat(tmpfile, 0600)) < 0) {
+ if ((ofile = open(tmpfile, O_WRONLY | O_CREAT | O_TRUNC, 0600)) < 0) {
panic("cannot create file temp file %s: %s\n",
name, strerror(errno));
}
else {
/* read in the rest of the block based on bufsize */
len = bufsize - TP_BSIZE;
- if (read_a_block(mt, tapebuf+TP_BSIZE, len, &i) <= 0
- || i != len)
+ if (read_a_block(mt, tapebuf+TP_BSIZE, len, &i) < 0
+ || (i != len && i % TP_BSIZE != 0))
errx(1,"Error reading dump file header");
tbufptr = tapebuf;
numtrec = ntrec;
static void
accthdr(struct s_spcl *header)
{
- static ino_t previno = 0x7fffffff;
+ static dump_ino_t previno = 0x7fffffff;
static int prevtype;
static long predict;
long blks, i;