Clean up global variable declarations in the dump and restore

utilities so that they will compile with -fno-common.

Started by:  Kyle Evans (kevans)
Reviewed by: Kyle Evans (kevans)
MFC after:   1 week
Differential Revision: https://reviews.freebsd.org/D24210
This commit is contained in:
Kirk McKusick 2020-04-04 00:56:56 +00:00
parent 2efe3be95e
commit 33ceb489d3
9 changed files with 96 additions and 70 deletions

View File

@ -76,7 +76,7 @@
*/
typedef uint32_t dump_ino_t;
union u_spcl {
extern union u_spcl {
char dummy[TP_BSIZE];
struct s_spcl {
int32_t c_type; /* record type (see below) */

View File

@ -36,10 +36,10 @@
/*
* Dump maps used to describe what is to be dumped.
*/
int mapsize; /* size of the state maps */
char *usedinomap; /* map of allocated inodes */
char *dumpdirmap; /* map of directories to be dumped */
char *dumpinomap; /* map of files to be dumped */
extern int mapsize; /* size of the state maps */
extern char *usedinomap; /* map of allocated inodes */
extern char *dumpdirmap; /* map of directories to be dumped */
extern char *dumpinomap; /* map of files to be dumped */
/*
* Map manipulation macros.
*/
@ -56,39 +56,39 @@ char *dumpinomap; /* map of files to be dumped */
/*
* All calculations done in 0.1" units!
*/
char *disk; /* name of the disk file */
char *tape; /* name of the tape file */
char *popenout; /* popen(3) per-"tape" command */
char *dumpdates; /* name of the file containing dump date information*/
char *temp; /* name of the file for doing rewrite of dumpdates */
int lastlevel; /* dump level of previous dump */
int level; /* dump level of this dump */
int uflag; /* update flag */
int diskfd; /* disk file descriptor */
int tapefd; /* tape file descriptor */
int pipeout; /* true => output to standard output */
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 tsize; /* tape size in 0.1" units */
long asize; /* number of 0.1" units written on current tape */
int etapes; /* estimated number of tapes */
int nonodump; /* if set, do not honor UF_NODUMP user flags */
int unlimited; /* if set, write to end of medium */
int cachesize; /* size of block cache in bytes */
int rsync_friendly; /* be friendly with rsync */
int notify; /* notify operator flag */
int blockswritten; /* number of blocks written on current tape */
int tapeno; /* current tape number */
time_t tstart_writing; /* when started writing the first tape block */
time_t tend_writing; /* after writing the last tape block */
int passno; /* current dump pass number */
struct fs *sblock; /* the file system super block */
long dev_bsize; /* block size of underlying disk device */
int dev_bshift; /* log2(dev_bsize) */
int tp_bshift; /* log2(TP_BSIZE) */
extern char *disk; /* name of the disk file */
extern char *tape; /* name of the tape file */
extern char *popenout; /* popen(3) per-"tape" command */
extern char *dumpdates; /* name of the file containing dump date info */
extern int lastlevel; /* dump level of previous dump */
extern int level; /* dump level of this dump */
extern int uflag; /* update flag */
extern int diskfd; /* disk file descriptor */
extern int pipeout; /* true => output to standard output */
extern ino_t curino; /* current inumber; used globally */
extern int newtape; /* new tape flag */
extern int density; /* density in 0.1" units */
extern long tapesize; /* estimated tape size, blocks */
extern long tsize; /* tape size in 0.1" units */
extern int etapes; /* estimated number of tapes */
extern int nonodump; /* if set, do not honor UF_NODUMP user flags */
extern int unlimited; /* if set, write to end of medium */
extern int cachesize; /* size of block cache in bytes */
extern int rsync_friendly; /* be friendly with rsync */
extern int notify; /* notify operator flag */
extern int blockswritten; /* number of blocks written on current tape */
extern int tapeno; /* current tape number */
extern int ntrec; /* blocking factor on tape */
extern long blocksperfile; /* number of blocks per output file */
extern int cartridge; /* assume non-cartridge tape */
extern char *host; /* remote host (if any) */
extern time_t tstart_writing; /* when started writing the first tape block */
extern time_t tend_writing; /* after writing the last tape block */
extern int passno; /* current dump pass number */
extern struct fs *sblock; /* the file system super block */
extern long dev_bsize; /* block size of underlying disk device */
extern int dev_bshift; /* log2(dev_bsize) */
extern int tp_bshift; /* log2(TP_BSIZE) */
/* operator interface functions */
void broadcast(const char *message);
@ -163,8 +163,8 @@ struct dumpdates {
int dd_level;
time_t dd_ddate;
};
int nddates; /* number of records (might be zero) */
struct dumpdates **ddatev; /* the arrayfied version */
extern int nddates; /* number of records (might be zero) */
extern struct dumpdates **ddatev; /* the arrayfied version */
void initdumptimes(void);
void getdumptime(void);
void putdumptime(void);

View File

@ -80,7 +80,6 @@ static void rmtgets(char *, int);
static int rmtreply(const char *);
static int errfd = -1;
extern int ntrec; /* blocking factor on tape */
int
rmthost(const char *host)

View File

@ -60,8 +60,10 @@ struct dumptime {
SLIST_ENTRY(dumptime) dt_list;
};
SLIST_HEAD(dthead, dumptime) dthead = SLIST_HEAD_INITIALIZER(dthead);
struct dumpdates **ddatev = NULL;
int nddates = 0;
int nddates = 0; /* number of records (might be zero) */
struct dumpdates **ddatev; /* the arrayfied version */
char *dumpdates; /* name of the file containing dump date info */
int lastlevel; /* dump level of previous dump */
static void dumprecout(FILE *, const struct dumpdates *);
static int getrecord(FILE *, struct dumpdates *);

View File

@ -73,17 +73,40 @@ static const char rcsid[] =
#include "dump.h"
#include "pathnames.h"
int notify = 0; /* notify operator flag */
int snapdump = 0; /* dumping live filesystem, so use snapshot */
int blockswritten = 0; /* number of blocks written on current tape */
int tapeno = 0; /* current tape number */
int mapsize; /* size of the state maps */
char *usedinomap; /* map of allocated inodes */
char *dumpdirmap; /* map of directories to be dumped */
char *dumpinomap; /* map of files to be dumped */
char *disk; /* name of the disk file */
char *tape; /* name of the tape file */
char *popenout; /* popen(3) per-"tape" command */
int level; /* dump level of this dump */
int uflag; /* update flag */
int diskfd; /* disk file descriptor */
int pipeout; /* true => output to standard output */
int density = 0; /* density in bytes/0.1" " <- this is for hilit19 */
int ntrec = NTREC; /* # tape blocks in each tape record */
int cartridge = 0; /* Assume non-cartridge tape */
long tapesize; /* estimated tape size, blocks */
long tsize; /* tape size in 0.1" units */
int etapes; /* estimated number of tapes */
int nonodump; /* if set, do not honor UF_NODUMP user flags */
int unlimited; /* if set, write to end of medium */
int cachesize = 0; /* block cache size (in bytes), defaults to 0 */
long dev_bsize = 1; /* recalculated below */
long blocksperfile; /* output blocks per file */
int rsync_friendly; /* be friendly with rsync */
int notify = 0; /* notify operator flag */
int blockswritten = 0; /* number of blocks written on current tape */
int tapeno = 0; /* current tape number */
int ntrec = NTREC; /* # tape blocks in each tape record */
long blocksperfile; /* number of blocks per output file */
int cartridge = 0; /* Assume non-cartridge tape */
char *host = NULL; /* remote host (if any) */
time_t tstart_writing; /* when started writing the first tape block */
time_t tend_writing; /* after writing the last tape block */
int passno; /* current dump pass number */
struct fs *sblock; /* the file system super block */
long dev_bsize = 1; /* recalculated below */
int dev_bshift; /* log2(dev_bsize) */
int tp_bshift; /* log2(TP_BSIZE) */
int snapdump = 0; /* dumping live filesystem, so use snapshot */
static char *getmntpt(char *, int *);
static long numarg(const char *, long, long);
@ -111,7 +134,6 @@ main(int argc, char *argv[])
dumpdates = _PATH_DUMPDATES;
popenout = NULL;
tape = NULL;
temp = _PATH_DTMP;
if (TP_BSIZE / DEV_BSIZE == 0 || TP_BSIZE % DEV_BSIZE != 0)
quit("TP_BSIZE must be a multiple of DEV_BSIZE\n");
level = 0;

View File

@ -35,7 +35,6 @@
#include <paths.h>
#define _PATH_DEFTAPE "/dev/sa0"
#define _PATH_DTMP "/etc/dtmp"
#define _PATH_DUMPDATES "/etc/dumpdates"
#define _PATH_LOCK "/tmp/dumplockXXXXXX"
#define _PATH_RMT "/etc/rmt" /* path on remote host */

View File

@ -61,16 +61,18 @@ static const char rcsid[] =
#include "dump.h"
int writesize; /* size of malloc()ed buffer for tape */
int64_t lastspclrec = -1; /* tape block number of last written header */
int trecno = 0; /* next record to write in current block */
extern long blocksperfile; /* number of blocks per output file */
long blocksthisvol; /* number of blocks on current output file */
extern int ntrec; /* blocking factor on tape */
extern int cartridge;
extern char *host;
char *nexttape;
FILE *popenfp = NULL;
ino_t curino; /* current inumber; used globally */
int newtape; /* new tape flag */
union u_spcl u_spcl; /* mapping of variables in a control block */
static int tapefd; /* tape file descriptor */
static long asize; /* number of 0.1" units written on cur tape */
static int writesize; /* size of malloc()ed buffer for tape */
static int64_t lastspclrec = -1; /* tape block number of last written header */
static int trecno = 0; /* next record to write in current block */
static long blocksthisvol; /* number of blocks on current output file */
static char *nexttape;
static FILE *popenfp = NULL;
static int atomic(ssize_t (*)(), int, char *, int);
static void doslave(int, int);
@ -91,10 +93,10 @@ struct req {
ufs2_daddr_t dblk;
int count;
};
int reqsiz;
static int reqsiz;
#define SLAVES 3 /* 1 slave writing, 1 reading, 1 for slack */
struct slave {
static struct slave {
int64_t tapea; /* header number at start of this chunk */
int64_t firstrec; /* record number of this block */
int count; /* count to next header (used for TS_TAPE */
@ -106,12 +108,12 @@ struct slave {
char (*tblock)[TP_BSIZE]; /* buffer for data blocks */
struct req *req; /* buffer for requests */
} slaves[SLAVES+1];
struct slave *slp;
static struct slave *slp;
char (*nextblock)[TP_BSIZE];
static char (*nextblock)[TP_BSIZE];
int master; /* pid of master, for sending error signals */
int tenths; /* length of tape used per block written */
static int master; /* pid of master, for sending error signals */
static int tenths; /* length of tape used per block written */
static volatile sig_atomic_t caught; /* have we caught the signal to proceed? */
static volatile sig_atomic_t ready; /* reached the lock point without having */
/* received the SIGUSR2 signal from the prev slave? */

View File

@ -103,7 +103,7 @@ struct entry {
/*
* The entry describes the next file available on the tape
*/
struct context {
extern struct context {
short action; /* action being taken on this file */
mode_t mode; /* mode of file */
ino_t ino; /* inumber of file */

View File

@ -94,6 +94,8 @@ static char *map;
static char lnkbuf[MAXPATHLEN + 1];
static int pathlen;
struct context curfile; /* describes next file available on the tape */
union u_spcl u_spcl; /* mapping of variables in a control block */
int Bcvt; /* Swap Bytes */
int oldinofmt; /* FreeBSD 1 inode format needs cvt */