summaryrefslogtreecommitdiff
path: root/usr/src/cmd/cdrw
diff options
context:
space:
mode:
authorrameshc <none@none>2007-11-09 11:27:18 -0800
committerrameshc <none@none>2007-11-09 11:27:18 -0800
commit83eefa44a30911772c048cba898c57272799c791 (patch)
tree0e92aa68e26a382a29f32d5567d863974fa914fb /usr/src/cmd/cdrw
parent1be2e5dfebda7cac010af97aae7a3a1b45649aed (diff)
downloadillumos-joyent-83eefa44a30911772c048cba898c57272799c791.tar.gz
6592397 cdrw -S -i <iso image> fails on TSSTcorp CD/DVDW TS-T632A and TS-L632D drives
Diffstat (limited to 'usr/src/cmd/cdrw')
-rw-r--r--usr/src/cmd/cdrw/transport.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/usr/src/cmd/cdrw/transport.c b/usr/src/cmd/cdrw/transport.c
index 90cab765e4..0cd4dbd35f 100644
--- a/usr/src/cmd/cdrw/transport.c
+++ b/usr/src/cmd/cdrw/transport.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -170,8 +170,16 @@ uscsi(int fd, struct uscsi_cmd *scmd)
if ((SENSE_KEY(rqbuf) == 2) && (ASC(rqbuf) == 4) &&
(ASCQ(rqbuf) == 8)) {
total_retries++;
+ /*
+ * In Simulation write mode, we use the
+ * READ_INFO_CMD to check if all the previous
+ * writes completed. Sleeping 500 ms will not
+ * be sufficient in all cases for DVDs.
+ */
if ((device_type != CD_RW) &&
- (scmd->uscsi_cdb[0] == CLOSE_TRACK_CMD))
+ ((scmd->uscsi_cdb[0] == CLOSE_TRACK_CMD) ||
+ ((scmd->uscsi_cdb[0] == READ_INFO_CMD) &&
+ simulation)))
(void) sleep(3);
else
ms_delay(500);