diff options
author | gibbs <gibbs@FreeBSD.org> | 1998-09-15 10:25:50 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1998-09-15 10:25:50 +0000 |
commit | 3576feaf0b8e5572b896c928b4e922164aadc629 (patch) | |
tree | d9d9c86e11ef2d3463535e337523773328ad286e /sbin/dump/tape.c | |
parent | 439c46a17f7ae760e5040e385ef0ed7dd039fe46 (diff) | |
download | FreeBSD-src-3576feaf0b8e5572b896c928b4e922164aadc629.zip FreeBSD-src-3576feaf0b8e5572b896c928b4e922164aadc629.tar.gz |
Add support for dealing with ENOSPC as the error code returned by a tape
device hitting EOM on a write.
Diffstat (limited to 'sbin/dump/tape.c')
-rw-r--r-- | sbin/dump/tape.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sbin/dump/tape.c b/sbin/dump/tape.c index 1fda006..e7b66c7 100644 --- a/sbin/dump/tape.c +++ b/sbin/dump/tape.c @@ -36,7 +36,7 @@ static char sccsid[] = "@(#)tape.c 8.4 (Berkeley) 5/1/95"; #endif static const char rcsid[] = - "$Id$"; + "$Id: tape.c,v 1.9 1998/06/15 06:58:11 charnier Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -822,13 +822,17 @@ doslave(cmd, slave_number) slave_number, size, writesize); #endif + /* + * Handle ENOSPC as an EOT condition. + */ + if (wrote < 0 && errno == ENOSPC) { + wrote = 0; + eot_count++; + } + if (eot_count > 0) size = 0; - /* - * fixme: Pyramids running OSx return ENOSPC - * at EOT on 1/2 inch drives. - */ if (wrote < 0) { (void) kill(master, SIGUSR1); for (;;) |