summaryrefslogtreecommitdiffstats
path: root/sbin/dump
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>1997-05-06 20:52:28 +0000
committerjoerg <joerg@FreeBSD.org>1997-05-06 20:52:28 +0000
commite005bbd63cfb11fc5af938dba18f0150a2058c1b (patch)
treed83df29217eb2bf2a55f8218793fedeccb9563cb /sbin/dump
parent7a61380144644e694a0c1261b822ed30812a7ce1 (diff)
downloadFreeBSD-src-e005bbd63cfb11fc5af938dba18f0150a2058c1b.zip
FreeBSD-src-e005bbd63cfb11fc5af938dba18f0150a2058c1b.tar.gz
Fix a long-standing bug with dump not treating errors correctly. They
were mishandled as an EOF, which became fatal if your first tape was accidentally write-protected. PR: bin/850 dump treats write-protect as an EOT...
Diffstat (limited to 'sbin/dump')
-rw-r--r--sbin/dump/tape.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sbin/dump/tape.c b/sbin/dump/tape.c
index 9378d9f..91f5dc4 100644
--- a/sbin/dump/tape.c
+++ b/sbin/dump/tape.c
@@ -722,8 +722,10 @@ killall()
register int i;
for (i = 0; i < SLAVES; i++)
- if (slaves[i].pid > 0)
+ if (slaves[i].pid > 0) {
(void) kill(slaves[i].pid, SIGKILL);
+ slaves[i].sent = 0;
+ }
}
/*
@@ -818,7 +820,7 @@ doslave(cmd, slave_number)
* fixme: Pyramids running OSx return ENOSPC
* at EOT on 1/2 inch drives.
*/
- if (size < 0) {
+ if (wrote < 0) {
(void) kill(master, SIGUSR1);
for (;;)
(void) sigpause(0);
OpenPOWER on IntegriCloud