diff options
author | joerg <joerg@FreeBSD.org> | 1997-05-06 20:52:28 +0000 |
---|---|---|
committer | joerg <joerg@FreeBSD.org> | 1997-05-06 20:52:28 +0000 |
commit | e005bbd63cfb11fc5af938dba18f0150a2058c1b (patch) | |
tree | d83df29217eb2bf2a55f8218793fedeccb9563cb /sbin | |
parent | 7a61380144644e694a0c1261b822ed30812a7ce1 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sbin/dump/tape.c | 6 |
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); |