On 08/25/11 14:33, Manuel Giraud wrote: > Hi, > > This patch makes the following command working: > > $ RSH=ssh dump -0au -f remote:dump.0 / > > even if dump.0 doesn't already exists on remote. Note: i cannot test > this patch on st(4) device. > > Index: tape.c > =================================================================== > RCS file: /cvs/src/sbin/dump/tape.c,v > retrieving revision 1.31 > diff -u -p -r1.31 tape.c > --- tape.c 27 Oct 2009 23:59:32 -0000 1.31 > +++ tape.c 25 Aug 2011 12:31:36 -0000 > @@ -649,7 +649,7 @@ restore_check_point: > msg("Dumping volume %d on %s\n", tapeno, tape); > } > #ifdef RDUMP > - while ((tapefd = (host ? rmtopen(tape, 2) : > + while ((tapefd = (host ? rmtopen(tape, O_WRONLY|O_CREAT) : > pipeout ? 1 : open(tape, O_WRONLY|O_CREAT, 0666)))< > 0) > #else > while ((tapefd = (pipeout ? 1 : >
I like it. I see no reason for using different flags for local vs remote files, and using magic numbers instead of the defined constants is just plain wrong. Updated diff w/ the same reasoning applied on restore(8). Any OK's or objections? /Alexander Index: dump/tape.c =================================================================== RCS file: /cvs/src/sbin/dump/tape.c,v retrieving revision 1.31 diff -u -p -r1.31 tape.c --- dump/tape.c 27 Oct 2009 23:59:32 -0000 1.31 +++ dump/tape.c 27 Sep 2011 20:05:05 -0000 @@ -649,7 +649,7 @@ restore_check_point: msg("Dumping volume %d on %s\n", tapeno, tape); } #ifdef RDUMP - while ((tapefd = (host ? rmtopen(tape, 2) : + while ((tapefd = (host ? rmtopen(tape, O_WRONLY|O_CREAT) : pipeout ? 1 : open(tape, O_WRONLY|O_CREAT, 0666))) < 0) #else while ((tapefd = (pipeout ? 1 : Index: restore/tape.c =================================================================== RCS file: /cvs/src/sbin/restore/tape.c,v retrieving revision 1.39 diff -u -p -r1.39 tape.c --- restore/tape.c 27 Jun 2011 23:40:57 -0000 1.39 +++ restore/tape.c 27 Sep 2011 20:05:05 -0000 @@ -195,7 +195,7 @@ setup(void) Vprintf(stdout, "Verify tape and initialize maps\n"); #ifdef RRESTORE if (host) - mt = rmtopen(magtape, 0); + mt = rmtopen(magtape, O_RDONLY); else #endif if (pipein) @@ -358,7 +358,7 @@ again: #ifdef RRESTORE if (host) - mt = rmtopen(magtape, 0); + mt = rmtopen(magtape, O_RDONLY); else #endif mt = open(magtape, O_RDONLY);