Date: 27 Nov 2001 10:25:04 +0300 From: Alex Bakhtin <bakhtin@amt.ru> To: iedowse@FreeBSD.org Cc: freebsd-bugs@FreeBSD.org Subject: Re: bin/25474: dump can't close fifo pipe correctly Message-ID: <81r8qk4qwf.fsf@bakhtin.amt.ru> In-Reply-To: <200111211843.fALIhFl64754@freefall.freebsd.org> References: <200111211843.fALIhFl64754@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
>>>>> "i" == iedowse writes: Hi, i> Synopsis: dump can't close fifo pipe correctly i> State-Changed-From-To: open->feedback i> State-Changed-By: iedowse i> State-Changed-When: Wed Nov 21 10:41:10 PST 2001 i> State-Changed-Why: i> Could you supply a patch using the "-u" option to diff? Without i> some context it's difficult to see what is being changed. Making i> dump work with FIFOs seems like a useful addition. Np. The only change made is inside `trewind` function - if the file is a FIFO it's not necessary to execute the following code: --- while ((f = open(tape, 0)) < 0) sleep (10); --- ============= {bakhtin}/home/bakhtin/work/dump>diff -u tape.c /usr/src/sbin/dump/tape.c --- tape.c Thu Mar 1 16:53:00 2001 +++ /usr/src/sbin/dump/tape.c Mon Oct 8 20:26:16 2001 @@ -36,14 +36,13 @@ static char sccsid[] = "@(#)tape.c 8.4 (Berkeley) 5/1/95"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/dump/tape.c,v 1.12 1999/08/28 00:12:39 peter Exp $"; + "$FreeBSD: src/sbin/dump/tape.c,v 1.12.2.1 2001/08/01 06:29:35 obrien Exp $"; #endif /* not lint */ #include <sys/param.h> #include <sys/socket.h> #include <sys/time.h> #include <sys/wait.h> -#include <sys/stat.h> #ifdef sunos #include <sys/vnode.h> @@ -323,7 +322,6 @@ { int f; int got; - struct stat sp; for (f = 0; f < SLAVES; f++) { /* @@ -366,9 +364,7 @@ return; } #endif - fstat(tapefd,&sp); (void) close(tapefd); - if(S_ISFIFO(sp.st_mode)) return; while ((f = open(tape, 0)) < 0) sleep (10); (void) close(f); @@ -385,7 +381,7 @@ (void)time((time_t *)&(tstart_changevol)); if (!nogripe) { msg("Change Volumes: Mount volume #%d\n", tapeno+1); - broadcast("CHANGE DUMP VOLUMES!\7\7\n"); + broadcast("CHANGE DUMP VOLUMES!\a\a\n"); } while (!query("Is the new volume mounted and ready to go?")) if (query("Do you want to abort?")) { {bakhtin}/home/bakhtin/work/dump> ============= -- Best regards, -- Alex Bakhtin, CCIE #8439 AMT Group, Cisco Systems Gold Partner, http://www.amt.ru To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?81r8qk4qwf.fsf>