| From | Sent On | Attachments |
|---|---|---|
| Kern Sibbald | Jun 1, 2003 10:54 am | |
| Dan Langille | Jun 1, 2003 11:32 am | |
| Justin T. Gibbs | Jun 1, 2003 1:08 pm | |
| Kern Sibbald | Jun 1, 2003 2:44 pm | |
| Justin T. Gibbs | Jun 1, 2003 3:39 pm | |
| Matthew Jacob | Jun 1, 2003 5:00 pm | |
| Matthew Jacob | Jun 1, 2003 5:13 pm | |
| Dan Langille | Jun 1, 2003 6:58 pm | |
| Matthew Jacob | Jun 1, 2003 7:03 pm | |
| Kern Sibbald | Jun 2, 2003 1:28 am | |
| Kern Sibbald | Jun 2, 2003 1:29 am | |
| Kern Sibbald | Jun 2, 2003 1:57 am | |
| Kern Sibbald | Jun 2, 2003 3:45 am | |
| Dan Langille | Jun 2, 2003 4:28 am | |
| Matthew Jacob | Jun 2, 2003 8:05 am | |
| Justin T. Gibbs | Jun 2, 2003 8:10 am | |
| Dan Langille | Jun 2, 2003 8:14 am | |
| Matthew Jacob | Jun 2, 2003 8:21 am | |
| Kern Sibbald | Jun 2, 2003 8:27 am | |
| Dan Langille | Jun 2, 2003 9:46 am | |
| Dan Langille | Jun 2, 2003 11:05 am | |
| Matthew Jacob | Jun 2, 2003 11:11 am | |
| Justin T. Gibbs | Jun 2, 2003 11:49 am | |
| Dan Langille | Jun 2, 2003 12:06 pm | |
| Justin T. Gibbs | Jun 2, 2003 12:10 pm | |
| Matthew Jacob | Jun 2, 2003 1:14 pm | |
| Dan Langille | Jun 2, 2003 2:16 pm | |
| Matthew Jacob | Jun 2, 2003 2:24 pm | |
| Kern Sibbald | Jun 2, 2003 2:46 pm | |
| Matthew Jacob | Jun 2, 2003 2:55 pm | |
| Kern Sibbald | Jun 2, 2003 3:31 pm | |
| Carl Reisinger | Jun 2, 2003 3:44 pm | |
| Matthew Jacob | Jun 2, 2003 3:44 pm | |
| Dan Langille | Jun 2, 2003 6:37 pm | |
| Kern Sibbald | Jun 3, 2003 12:28 am | |
| Kern Sibbald | Jun 3, 2003 6:07 am | |
| Carl Reisinger | Jun 3, 2003 6:19 am | |
| Kern Sibbald | Jun 3, 2003 6:37 am | |
| Carl Reisinger | Jun 3, 2003 7:01 am | |
| Matthew Jacob | Jun 3, 2003 7:34 am | |
| Justin T. Gibbs | Jun 3, 2003 7:51 am | |
| Kern Sibbald | Jun 3, 2003 8:05 am | |
| Kern Sibbald | Jun 3, 2003 8:11 am | |
| Matthew Jacob | Jun 3, 2003 9:03 am | |
| Dan Langille | Jun 3, 2003 9:10 am | |
| Justin T. Gibbs | Jun 3, 2003 9:24 am | |
| Kern Sibbald | Jun 3, 2003 9:40 am | |
| Justin T. Gibbs | Jun 3, 2003 10:03 am | |
| Kern Sibbald | Jun 3, 2003 10:19 am | |
| Kern Sibbald | Jun 3, 2003 10:34 am | |
| Matthew Jacob | Jun 3, 2003 11:00 am | |
| Matthew Jacob | Jun 3, 2003 11:16 am | |
| Matthew Jacob | Jun 3, 2003 11:39 am | |
| Justin T. Gibbs | Jun 3, 2003 12:12 pm | |
| Dan Langille | Jun 3, 2003 12:43 pm | |
| Matthew Jacob | Jun 3, 2003 12:46 pm | |
| Kern Sibbald | Jun 3, 2003 1:05 pm | |
| PostMaster General | Jun 3, 2003 2:21 pm | |
| Kern Sibbald | Jun 4, 2003 12:20 am | |
| Matthew Jacob | Jun 4, 2003 7:51 am | |
| Kern Sibbald | Jun 4, 2003 9:51 am | |
| Kern Sibbald | Jun 6, 2003 7:38 am | |
| Dan Langille | Jun 6, 2003 8:59 am | |
| Matthew Jacob | Jun 6, 2003 11:50 am | |
| Dan Langille | Jun 20, 2003 6:17 pm | |
| Dan Langille | Jul 1, 2003 5:07 pm | |
| Matthew Jacob | Jul 1, 2003 11:11 pm | |
| Michael L. Squires | Aug 25, 2003 4:16 am | |
| Dan Langille | Aug 25, 2003 9:13 am | |
| Michael L. Squires | Aug 27, 2003 5:27 am |
| Subject: | SCSI tape data loss | |
|---|---|---|
| From: | Justin T. Gibbs (gib...@scsiguy.com) | |
| Date: | Jun 3, 2003 9:24:35 am | |
| List: | org.freebsd.freebsd-scsi | |
What is clear from the output is that the write() is returning a -1 status. errno could possibly be 0, in which case I set it to ENOSPC, if it is not 0 then it is ENOSPC judging by the error message that is printed "Write error on device ...".
You may want to see more, but here is the basic code that does the write: if ((uint32_t)(stat=write(dev->fd, block->buf, (size_t)wlen)) != wlen) { /* We should check for errno == ENOSPC, BUT many * devices simply report EIO when it is full. * with a little more thought we may be able to check * capacity and distinguish real errors and EOT * conditions. In any case, we probably want to * simulate an End of Medium. */ clrerror_dev(dev, -1);
Apart from the funny casting, the only obvious bug is that you are expecting errno to be set on every syscall. Errno is only valid if stat == -1 or you explicitly clear it prior to the syscall (or after the last time it was set). You don't seem to be doing that here.
See the errno man page for details
-- Justin





