Home | History | Annotate | Download | only in dump
History log of /src/sbin/dump/tape.c
RevisionDateAuthorComments
 1.57  19-Jun-2021  christos Add external attribute dumping and restoring support from FreeBSD.
Does not fully work yet, attributes are being saved and restored correctly,
but don't appear in the restored files somehow.
 1.56  07-Jun-2021  hannken Bitmaps (TS_BITS and TS_CLRI) dont use the "c_addr" array as they
cannot have holes. As bitmaps are written without TS_ADDR records
"c_count" may be larger than the "c_addr" size resulting in a
segmentation violation reading "c_addr" beyond its end.

Compute "blks" for TS_INODE and TS_ADDR only -- its used for multi
volume dumps and the bitmaps must both be on the first volume.
 1.55  01-Mar-2019  christos branches: 1.55.2;
Use getfsspecname() to fill the filesystem argument in dumpdates.
While here, make sure that the error strings terminate with newline
consistently, and add a function that adds the system error string.
 1.54  24-Aug-2015  bouyer branches: 1.54.8; 1.54.16;
Consistently use iswap64() and 64bit intermediate variable, as well as
64bit formats for c_tapea. Fixes tape useage report for large filesystems.
 1.53  15-Jun-2013  christos branches: 1.53.6;
handle new lfs split
 1.52  13-Jan-2013  dholland Use void * for I/O functions and remove no-longer-needed casts.
 1.51  13-Jan-2013  dholland Add some const.
 1.50  16-Sep-2011  plunky branches: 1.50.2; 1.50.4; 1.50.8;
NULL does not need a cast, here
 1.49  16-Feb-2008  matt Fix some inconsisent/conflicting definitions and missing parameters
 1.48  18-Dec-2006  christos branches: 1.48.4; 1.48.6;
Convert a couple of "(void)&" constructs to volatile.
Flag various unused parameters in restore and dump so that these will
compile with -Wextra. (Note: restore uses some stuff from dump.)
 1.47  26-Oct-2006  hannken When using a snapshot take the snapshot raw device on further open.

Fixes PR #34923 dump(8) only dumps a corefile with -X (snapshots)

Approved by: Manuel Bouyer <bouyer@netbsd.org>
 1.46  24-Jun-2006  perseant Change LFCNWRAP{STOP,GO} to make them more suitable for snapshotting; in
particular, the caller can now choose whether to wait for the condition
to be met, and if the caller of LFCNWRAPSTOP dies or otherwise closes
the descriptor, the filesystem is started again. Updated the ckckp
regression test to use the new semantics.

dump_lfs(8) now uses the fcntls to implement LFS-style snapshotting through
the -X flag, addressing PR#33457 albeit not using fss(4). Fixed a couple
other problems with dump_lfs that manifested themselves during testing.
 1.45  02-Jun-2005  lukem appease gcc -Wuninitialized
 1.44  08-Aug-2004  lukem branches: 1.44.2; 1.44.4; 1.44.6;
Signal handlers should manipulate 'volatile sig_atomic_t' instead of 'int'.
 1.43  15-Mar-2004  lukem Adjust tstart_volume (volume start time) by the time spent in query(),
similar to the adjustment for tstart_writing made in optr.c rev 1.4.
Should fix PR bin/19711 from matthew green.
 1.42  18-Feb-2004  hannken Avoid signal race condition. If a slave gets the SIGUSR2 signal between
the "setjmp" and the "ready = 1" statements the slave will pause forever
and the complet dump hangs.

Fixes PR #24453
 1.41  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22308, verified by myself.
 1.40  02-Apr-2003  fvdl Add support for UFS2. UFS2 is an enhanced FFS, adding support for
64 bit block pointers, extended attribute storage, and a few
other things.

This commit does not yet include the code to manipulate the extended
storage (for e.g. ACLs), this will be done later.

Originally written by Kirk McKusick and Network Associates Laboratories for
FreeBSD.
 1.39  16-Jan-2003  kleink Rename `sigset' locals to avoid symbol shadowing warning.
 1.38  18-Aug-2002  yamt save/restore errno in signal handlers.
 1.37  07-Jan-2002  bouyer For -l: specify the timeout on the command line (in seconds) instead of
hardwiring it to 2s, as suggested on tech-userlevel.
 1.36  30-Dec-2001  lukem Add -a to "auto-size" the tape, rather than relying upon other options
to define the tape size. Requires the tape driver to either return ENOSPC
at end of media, or 0 when a write is attempted (such as the "early warning"
support in st(4) enabled with "mt eew 1"). From FreeBSD.
 1.35  25-Dec-2001  lukem Fixes from FreeBSD:
- Fix error if first tape was write protected. Fix NetBSD PRs 4754 and 6098.
- Make dump exit codes confirm to manual page.
- Use \a instead of \7 to make noise.
- Fix estimated number of tapes for huge dumps to cartridges.
- Use <sys/queue.h> SLIST_* instead of home-rolled lists.
- Do not exit if unable to read or create /etc/dumpdates.
- Support output (tape) device returning ENOSPC for end-of-media on a write.

Fixes by me:
- Remove unused ddates_in.
- Don't dump core if SIGINFO is received before 1 second has elapsed.
- Only process SIGINFO in current "active" child.
- Don't dump core in -w if dumpdates wasn't readable and ddatev == NULL
- Minor KNF; wrap some lines
 1.34  23-Dec-2001  lukem unifdef sunos
 1.33  23-Dec-2001  lukem nuke trailing whitespace
 1.32  22-Dec-2001  lukem - use correct type for minTime in findlru() (size_t instead of int)
- clean up whitespace
 1.31  14-Dec-2001  bouyer Add a -l (autoload) flag. For multivolume dumps, this makes dump eject the
tape when a volume is full, and try to reopen the tape drive for 2 mn.
To be used with tape changers which load the next tape when the current one is
ejected.
While I'm there fix eject handling for remote tape.
 1.30  01-Nov-2001  lukem fix -Wshadow warnings
 1.29  14-Aug-2001  lukem s/filesystem/file system/dump.h
 1.28  28-May-2001  lukem * improve parsing of file-systems-to-dump when a path is given:
- if it's a path to an unmounted file-system listed in /etc/fstab, use
that instead of assuming the user wanted a subtree dump of the parent
directory. this restores the behaviour of dump before the subtree
dumping code went in.
- if it's a path to a mounted file-system which is not in /etc/fstab,
use the info from getmntinfo(3). previously, dump would choke.
* implement error checked malloc(), calloc(), strdup(), and use
appropriately (some of the calloc()s weren't being checked)
* use 'file-system' instead of 'filesystem' in the man page
 1.27  28-May-2001  lukem unifdef !__STDC__ (missed in previous)
 1.26  27-May-2001  lukem knf to ansi
 1.25  12-May-2001  tron Fix bug in new "e" option: only eject tape if it is full, not if the dump
was finished.
 1.24  07-May-2001  tron Add a new option "e" to "dump" which allows to eject tapes automatically
if a tape change is required.
 1.23  11-Oct-2000  he Better fix for format warnings.
The type of time_t varies between ports, so we need to cast
before printing. It appears to be sufficient and safe to use (int).
 1.22  11-Oct-2000  briggs Fix format warnings
 1.21  01-Oct-1999  perseant branches: 1.21.6;
Working version of aborted dump{,_lfs} join.
 1.20  30-Sep-1999  perseant Back out changes made on the 29th, not at all the changes I intended to commit.
(I don't know how I did it though ... I'll figure it out tonight.)
I'll reapply this, in a working form, this evening.
 1.19  29-Sep-1999  perseant Adapt dump(8) to use filestore-independent (but still ufs-specific)
replacements for NINDIR, fsbtodb, etc. Create dump_lfs by adding a few
LFS-filestore-specific routines. As described in PR#8317.
 1.18  23-Mar-1999  bouyer branches: 1.18.2; 1.18.4;
Implement a read cache, as announced on tech-userlevel. Default is 32k
read buffer size, 512 buffer or 15% of the user memory. Can be changed
with the -k and -s options.
 1.17  18-Jul-1998  lukem use AF_LOCAL instead of AF_UNIX
 1.16  18-Mar-1998  bouyer Add support for non-native byte order FFS. The dump is in filesystem byte
order, restore already knows how to byteswap dumps.
 1.15  16-Sep-1997  mrg make these compile on the alpha after WARNS=1.
 1.14  16-Sep-1997  lukem resolve conflicts from lite-2 import
 1.13  15-Sep-1997  lukem remove __dead
 1.12  15-Sep-1997  lukem * cleanup for WARNS=1
* fix use of .Nm
* comment out some unused(?) functions
 1.11  05-Jun-1997  lukem * Add the ability to dump specific files & directories of a single
filesystem. This uses fts(3) to access the directory structure (and
not the raw device), so the standard access permissions are adhered
to (unlike dumping an entire filesystem, which just requires read
access to the raw disk device).
* Support SIGINFO status reporting.
* Remove now unused variables that previously stored the (e)uid.
* Be more informative in a couple of error messages.
 1.10  15-Apr-1997  lukem use _PATH_DEFTAPE from <paths.h>
change doco references/examples from /dev/rmt* to /dev/rst*
 1.9  15-Apr-1997  lukem remove use of "register".
 1.8  10-Apr-1997  lukem Implement changes from [bin/1915]
* 'w' and 'W' display the year
* verbosity additions displaying total & per-volume transfer times and rates
 1.7  21-Mar-1995  mycroft Use POSIX signals.
 1.6  18-Mar-1995  cgd convert to new RCS Id conventions; reduce my headache
 1.5  31-Oct-1994  cgd correct return values.
 1.4  23-Sep-1994  mycroft Eliminate uses of some obsolete functions.
 1.3  08-Jun-1994  mycroft Update from 4.4-Lite, with local changes.
 1.2  09-Mar-1994  cgd light clean, and don't forget to close remote tape when aborting.
Inspired by Andreas Schulz.
 1.1  22-Dec-1993  cgd branches: 1.1.1;
new version from CSRG, via BSDI, with fixes
 1.1.1.2  16-Sep-1997  lukem imported from lite-2
 1.1.1.1  13-Jun-1994  mycroft Import 4.4-Lite version.
 1.18.4.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.18.2.2  11-Oct-2000  he Pull up revision 1.23 (requested by he):
Format string cleanup.
 1.18.2.1  11-Oct-2000  he Pull up revision 1.22 (requested by he):
Format string cleanup.
 1.21.6.6  16-Jan-2002  he Pull up revision 1.36 (via patch, requested by bouyer):
Add an ``-a'' option to ``auto-size'' the tape, rather than
relying upon other options to define the tape size.
 1.21.6.5  16-Jan-2002  he Pull up revisions 1.32-1.35 (via patch, requested by bouyer):
Various fixes:
o Fix error if first tape is write-protected; fixes PR#4754 and PR#6098
o Make error codes conform to manual page
o Use \a to make noise
o Fix estimated number of tapes for huge dumps to cartridges
o Use <sys/queue.h> SLIST_* macros instead of homegrown variants
o Do not exit if unable to read/create /etc/dumpdates
o Support output (tape) device returning ENOSPC for end-of-media on write
o Don't dump core if SIGINFO is received before 1 second has elapsed
o Only process SIGINFO in currently active child
o Ensure current (sub)block isn't past end of file system -- fixes
"spins forever but does nothing" bug.
o Some other minor fixes (types, whitespace, KNF, unifdef sunos, ...)
 1.21.6.4  16-Jan-2002  he Pull up revisions 1.31,1.37 (requested by bouyer):
Implement ``-l <timeout>'' option for use with e.g. autochangers.
 1.21.6.3  15-May-2001  he Pull up revision 1.25 (requested by tron):
Fix bug in new ``e'' option: only eject tape if it is full, not
if the dump was finished.
 1.21.6.2  09-May-2001  he Pull up revision 1.24 (requested by tron):
Add a new option ``e'' to dump which directs it to eject tapes
automatically if a tape change is required.
 1.21.6.1  17-Oct-2000  tv Pullup 1.22 [releng] and 1.23 [he]:
Fix format warnings.
The type of time_t varies between ports, so we need to cast
before printing. It appears to be sufficient and safe to use (int).
 1.44.6.1  11-Nov-2006  bouyer Pull up following revision(s) (requested by hannken in ticket #1573):
sbin/dump/snapshot.h: revision 1.3 via patch
sbin/dump/snapshot.c: revision 1.3 via patch
sbin/dump/main.c: revision 1.63 via patch
sbin/dump/tape.c: revision 1.47 via patch
sbin/dump/dump.h: revision 1.44 via patch
When using a snapshot take the snapshot raw device on further open.
Fixes PR #34923 dump(8) only dumps a corefile with -X (snapshots)
Approved by: Manuel Bouyer <bouyer@netbsd.org>
 1.44.4.1  11-Nov-2006  bouyer Pull up following revision(s) (requested by hannken in ticket #1573):
sbin/dump/snapshot.h: revision 1.3 via patch
sbin/dump/snapshot.c: revision 1.3 via patch
sbin/dump/main.c: revision 1.63 via patch
sbin/dump/tape.c: revision 1.47 via patch
sbin/dump/dump.h: revision 1.44 via patch
When using a snapshot take the snapshot raw device on further open.
Fixes PR #34923 dump(8) only dumps a corefile with -X (snapshots)
Approved by: Manuel Bouyer <bouyer@netbsd.org>
 1.44.2.1  11-Nov-2006  bouyer Pull up following revision(s) (requested by hannken in ticket #1573):
sbin/dump/snapshot.h: revision 1.3 via patch
sbin/dump/snapshot.c: revision 1.3 via patch
sbin/dump/main.c: revision 1.63 via patch
sbin/dump/tape.c: revision 1.47 via patch
sbin/dump/dump.h: revision 1.44 via patch
When using a snapshot take the snapshot raw device on further open.
Fixes PR #34923 dump(8) only dumps a corefile with -X (snapshots)
Approved by: Manuel Bouyer <bouyer@netbsd.org>
 1.48.6.1  18-Feb-2008  mjf Sync with HEAD.
 1.48.4.1  23-Mar-2008  matt sync with HEAD
 1.50.8.2  23-Jun-2013  tls resync from head
 1.50.8.1  25-Feb-2013  tls resync with head
 1.50.4.1  08-Mar-2016  snj Pull up following revision(s) (requested by bouyer in ticket #1332):
sbin/dump/main.c: revision 1.73
sbin/dump/tape.c: revision 1.54
Consistently use iswap64() and 64bit intermediate variable, as well as
64bit formats for c_tapea. Fixes tape useage report for large filesystems.
 1.50.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.50.2.1  23-Jan-2013  yamt sync with head
 1.53.6.1  06-Nov-2015  riz Pull up following revision(s) (requested by bouyer in ticket #991):
sbin/dump/tape.c: revision 1.54
sbin/dump/main.c: revision 1.73
Consistently use iswap64() and 64bit intermediate variable, as well as
64bit formats for c_tapea. Fixes tape useage report for large filesystems.
 1.54.16.1  10-Jun-2019  christos Sync with HEAD
 1.54.8.2  08-Jun-2021  martin Pull up following revision(s) (requested by hannken in ticket #1683):

sbin/dump/tape.c: revision 1.56

Bitmaps (TS_BITS and TS_CLRI) dont use the "c_addr" array as they
cannot have holes. As bitmaps are written without TS_ADDR records
"c_count" may be larger than the "c_addr" size resulting in a
segmentation violation reading "c_addr" beyond its end.

Compute "blks" for TS_INODE and TS_ADDR only -- its used for multi
volume dumps and the bitmaps must both be on the first volume.
 1.54.8.1  29-Mar-2019  martin Pull up following revision(s) (requested by manu in ticket #1221):

sbin/dump/tape.c: revision 1.55
sbin/dump_lfs/dump_lfs.8: revision 1.18
sbin/dump/dump.h: revision 1.56
sbin/dump/dump.8: revision 1.69
sbin/dump/dump.h: revision 1.57
sbin/dump/ffs_inode.c: revision 1.23
sbin/dump/optr.c: revision 1.43
sbin/dump/itime.c: revision 1.21
sbin/dump/main.c: revision 1.74
sbin/dump/itime.c: revision 1.22
sbin/dump/main.c: revision 1.75
sbin/dump/dump.8: revision 1.70
sbin/dump/traverse.c: revision 1.52
sbin/dump/dump.8: revision 1.71

Document what rdump is (was once) for. PR 53442.

Use getfsspecname() to fill the filesystem argument in dumpdates.
While here, make sure that the error strings terminate with newline
consistently, and add a function that adds the system error string.

Add -U flag to dump(8) and dump_lfs(8) to specify dumpdates entry
This address situations where dump(8) cannot figure out the device being
dumped. It also allows tracking of subvolume dumps by using virtual
device as dumpdates entry.

Bump date for previous.
 1.55.2.1  08-Jun-2021  martin Pull up following revision(s) (requested by hannken in ticket #1283):

sbin/dump/tape.c: revision 1.56

Bitmaps (TS_BITS and TS_CLRI) dont use the "c_addr" array as they
cannot have holes. As bitmaps are written without TS_ADDR records
"c_count" may be larger than the "c_addr" size resulting in a
segmentation violation reading "c_addr" beyond its end.

Compute "blks" for TS_INODE and TS_ADDR only -- its used for multi
volume dumps and the bitmaps must both be on the first volume.

RSS XML Feed