--- server-src/driver.c.orig 2003-01-01 18:28:54.000000000 -0500 +++ server-src/driver.c 2003-06-04 15:54:44.000000000 -0400 @@ -2242,10 +2222,10 @@ error("error [dump to tape DONE result_argc != 5: %d]", result_argc); } - free_serial(result_argv[2]); - if(failed == 1) goto tryagain; /* dump didn't work */ - else if(failed == 2) goto fatal; + else if(failed == 2) goto failed_dumper; + + free_serial(result_argv[2]); /* every thing went fine */ update_info_dumper(dp, origsize, dumpsize, dumptime); @@ -2259,9 +2239,10 @@ case TRYAGAIN: /* TRY-AGAIN */ tryagain: + headqueue_disk(&runq, dp); + failed_dumper: update_failed_dump_to_tape(dp); free_serial(result_argv[2]); - headqueue_disk(&runq, dp); tape_left = tape_length; break; @@ -2269,7 +2250,6 @@ case TAPE_ERROR: /* TAPE-ERROR */ case BOGUS: default: - fatal: update_failed_dump_to_tape(dp); free_serial(result_argv[2]); failed = 2; /* fatal problem */