#ifndef lint
static const char rcsid[] =
- "$Id: main.c,v 1.92 2004/04/21 08:55:51 stelian Exp $";
+ "$Id: main.c,v 1.97 2010/04/28 09:29:50 stelian Exp $";
#endif /* not lint */
#include <config.h>
#include <sys/time.h>
#include <time.h>
#ifdef __linux__
+#include <linux/types.h>
#ifdef HAVE_EXT2FS_EXT2_FS_H
#include <ext2fs/ext2_fs.h>
#else
dump_ino_t curino; /* current inumber; used globally */
int newtape; /* new tape flag */
int density; /* density in 0.1" units */
-long tapesize; /* estimated tape size, blocks */
+long long tapesize; /* estimated tape size, blocks */
long tsize; /* tape size in 0.1" units */
long asize; /* number of 0.1" units written on current tape */
int etapes; /* estimated number of tapes */
quit("TP_BSIZE must be a multiple of DEV_BSIZE\n");
memset(&lastlevel, 0, NUM_STR_SIZE);
memset(&level, 0, NUM_STR_SIZE);
+ /* Default dump level is zero. */
+ level[0] = '0';
if (argc < 2)
usage();
}
(void)setuid(getuid()); /* rmthost() is the only reason to be setuid */
- if (Apath && (Afile = open(Apath, O_WRONLY|O_CREAT|O_TRUNC,
+ if (Apath && (Afile = OPEN(Apath, O_WRONLY|O_CREAT|O_TRUNC,
S_IRUSR | S_IWUSR | S_IRGRP |
S_IWGRP | S_IROTH | S_IWOTH)) < 0) {
msg("Cannot open %s for writing: %s\n",
diskparam[i] = '\0';
disk = get_device_name(diskparam);
- if (!disk) { /* null means the disk is some form
- of LABEL= or UID= but it was not
- found */
- msg("Cannot find a disk having %s\n", diskparam);
- msg("The ENTIRE dump is aborted.\n");
- exit(X_STARTUP);
- }
+ if (!disk)
+ disk = strdup(diskparam);
+
/*
* disk can be either the full special file name,
* the suffix of the special file name,
if (pipeout || unlimited) {
tapesize += 1 + ntrec; /* 1 map header + trailer blocks */
- msg("estimated %ld blocks.\n", tapesize);
+ msg("estimated %lld blocks.\n", tapesize);
} else {
double fetapes;
if (blocksperfiles) {
- long tapesize_left;
+ long long tapesize_left;
tapesize_left = tapesize;
fetapes = 0;
tapesize += (etapes - 1) *
(howmany(mapsize * sizeof(char), TP_BSIZE) + 1);
tapesize += etapes + ntrec; /* headers + trailer blks */
- msg("estimated %ld blocks on %3.2f tape(s).\n",
+ msg("estimated %lld blocks on %3.2f tape(s).\n",
tapesize, fetapes);
}