On Wed, Jun 04, 2003 at 06:51:48AM -0000, [EMAIL PROTECTED] wrote:
> Jean-Louis,
>
> I just tried amanda-2.4.4-20030603.tar.gz
>
> With tapedev "rait:{file:/backup,file:/mirror}"
>
> I now get:
>
> $ amlabel Tapeless Tape00
> rewinding
> amlabel: tape_rewind: rewinding tape: rait:{file:/backup,file:/mirror}: No child
> processes
Dick,
I did all my test with a file: and a tape: drivers, and it works, but you
are right, it doesn't work with 2 file:.
Could you try this patch.
apply it with 'patch -p0 < rait-with-file.diff'
Jean-Louis
--
Jean-Louis Martineau email: [EMAIL PROTECTED]
Departement IRO, Universite de Montreal
C.P. 6128, Succ. CENTRE-VILLE Tel: (514) 343-6111 ext. 3529
Montreal, Canada, H3C 3J7 Fax: (514) 343-5834
--- tape-src/output-rait.c.orig 2003-03-07 15:49:18.000000000 -0500
+++ tape-src/output-rait.c 2003-06-04 09:19:47.000000000 -0400
@@ -1118,23 +1118,26 @@ static int rait_tapefd_ioctl(int (*func0
} else {
j = (*func1)(pr->fds[i], count);
}
- if( j != 0)
- res = j;
+ if( j != 0) {
+ errors++;
+ }
pr->readres[i] = -1;
}
}
for( i = 0; i < pr->nfds ; i++ ) {
- rait_debug((stderr, "in parent, waiting for %d\n", pr->readres[i]));
- waitpid( pr->readres[i], &stat, 0);
- if( WEXITSTATUS(stat) != 0 ) {
- res = WEXITSTATUS(stat);
- if( res == 255 )
- res = -1;
- }
- rait_debug((stderr, "in parent, return code was %d\n", res));
- if ( res != 0 ) {
- errors++;
- res = 0;
+ if(tapefd_can_fork(pr->fds[i])) {
+ rait_debug((stderr, "in parent, waiting for %d\n", pr->readres[i]));
+ waitpid( pr->readres[i], &stat, 0);
+ if( WEXITSTATUS(stat) != 0 ) {
+ res = WEXITSTATUS(stat);
+ if( res == 255 )
+ res = -1;
+ }
+ rait_debug((stderr, "in parent, return code was %d\n", res));
+ if ( res != 0 ) {
+ errors++;
+ res = 0;
+ }
}
}
if (errors > 0) {