Removed bug in burn_disc_write_sync(): BURN_DRIVE_IDLE, then d->sync_cache()

This commit is contained in:
Thomas Schmitt 2006-10-13 11:46:07 +00:00
parent 170eb96356
commit 6ad8e2e251
5 changed files with 10 additions and 4 deletions

View File

@ -3984,6 +3984,8 @@ int Cdrskin_eject(struct CdrskiN *skin, int flag)
if(skin->n_drives<=skin->driveno || skin->driveno < 0)
return(2);
/* <<< A61012 : retry loop might now be obsolete
(a matching bug in burn_disc_write_sync() was removed ) */
for(i= 0;i<max_try;i++) {
ret= Cdrskin_grab_drive(skin,2|((i<max_try-1)<<2));
if(ret>0 || i>=max_try-1)

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2006.10.11.191959"
#define Cdrskin_timestamP "2006.10.13.114554"

View File

@ -297,7 +297,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
0x00020001 (SORRY,LOW) = Cannot open busy device
0x00020002 (SORRY,HIGH) = Encountered error when closing drive
0x00020003 (FATAL,HIGH) = Could not grab drive
0x00020003 (SORRY,HIGH) = Could not grab drive
0x00020004 (NOTE,HIGH) = Opened O_EXCL scsi sibling
0x00020005 (FATAL,HIGH) = Failed to open device
0x00020006 (FATAL,HIGH) = Too many scsi siblings

View File

@ -578,14 +578,14 @@ int sg_grab(struct burn_drive *d)
drive_is_in_use:;
libdax_msgs_submit(libdax_messenger, d->global_index,
0x00020003,
LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH,
LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH,
"Could not grab drive - already in use", 0, 0);
sg_close_drive(d);
d->fd = -1337;
return 0;
}
libdax_msgs_submit(libdax_messenger, d->global_index, 0x00020003,
LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH,
LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH,
"Could not grab drive", os_errno, 0);
return 0;
}

View File

@ -658,6 +658,10 @@ return crap. so we send the command, then ignore the result.
burn_print(1, "done\n");
d->busy = BURN_DRIVE_IDLE;
/* ts A61012 : This return was traditionally missing, a suspect this
to have caused Cdrskin_eject() failures */
return;
fail:
d->sync_cache(d);
burn_print(1, "done - failed\n");