version 1.1.1.2, 2012/10/09 09:13:23
|
version 1.1.1.3, 2013/07/21 23:49:22
|
Line 1864 istgt_lu_disk_scsi_mode_sense_page(ISTGT_LU_DISK *spec
|
Line 1864 istgt_lu_disk_scsi_mode_sense_page(ISTGT_LU_DISK *spec
|
plen = 0x12 + 2; |
plen = 0x12 + 2; |
MODE_SENSE_PAGE_INIT(cp, plen, page, subpage); |
MODE_SENSE_PAGE_INIT(cp, plen, page, subpage); |
BDADD8(&cp[0], 1, 7); /* PS */ |
BDADD8(&cp[0], 1, 7); /* PS */ |
|
if (pc == 0x01) { |
|
// Changeable values |
|
BDADD8(&cp[2], 1, 2); /* WCE */ |
|
BDADD8(&cp[2], 1, 0); /* RCD */ |
|
len += plen; |
|
break; |
|
} |
BDADD8(&cp[2], 1, 2); /* WCE */ |
BDADD8(&cp[2], 1, 2); /* WCE */ |
//BDADD8(&cp[2], 1, 0); /* RCD */ |
//BDADD8(&cp[2], 1, 0); /* RCD */ |
{ |
{ |
Line 5088 istgt_lu_disk_queue_start(ISTGT_LU_Ptr lu, int lun)
|
Line 5095 istgt_lu_disk_queue_start(ISTGT_LU_Ptr lu, int lun)
|
CONN_Ptr conn; |
CONN_Ptr conn; |
ISTGT_LU_CMD_Ptr lu_cmd; |
ISTGT_LU_CMD_Ptr lu_cmd; |
struct timespec abstime; |
struct timespec abstime; |
time_t now; | time_t start, now; |
uint8_t *iobuf; |
uint8_t *iobuf; |
char tmp[1]; |
char tmp[1]; |
int abort_task = 0; |
int abort_task = 0; |
Line 5257 istgt_lu_disk_queue_start(ISTGT_LU_Ptr lu, int lun)
|
Line 5264 istgt_lu_disk_queue_start(ISTGT_LU_Ptr lu, int lun)
|
goto error_return; |
goto error_return; |
} |
} |
|
|
now = time(NULL); | start = now = time(NULL); |
abstime.tv_sec = now + (lu_task->condwait / 1000); |
abstime.tv_sec = now + (lu_task->condwait / 1000); |
abstime.tv_nsec = (lu_task->condwait % 1000) * 1000000; |
abstime.tv_nsec = (lu_task->condwait % 1000) * 1000000; |
#if 0 |
#if 0 |
Line 5279 istgt_lu_disk_queue_start(ISTGT_LU_Ptr lu, int lun)
|
Line 5286 istgt_lu_disk_queue_start(ISTGT_LU_Ptr lu, int lun)
|
spec->wait_lu_task = NULL; |
spec->wait_lu_task = NULL; |
MTX_UNLOCK(&spec->wait_lu_task_mutex); |
MTX_UNLOCK(&spec->wait_lu_task_mutex); |
MTX_UNLOCK(&lu_task->trans_mutex); |
MTX_UNLOCK(&lu_task->trans_mutex); |
ISTGT_ERRLOG("timeout trans_cond CmdSN=%u\n", | now = time(NULL); |
lu_task->lu_cmd.CmdSN); | ISTGT_ERRLOG("timeout trans_cond CmdSN=%u " |
| "(time=%d)\n", |
| lu_task->lu_cmd.CmdSN, |
| (int)difftime(now, start)); |
/* timeout */ |
/* timeout */ |
return -1; |
return -1; |
} |
} |
Line 5315 istgt_lu_disk_queue_start(ISTGT_LU_Ptr lu, int lun)
|
Line 5325 istgt_lu_disk_queue_start(ISTGT_LU_Ptr lu, int lun)
|
} |
} |
if (rc == ETIMEDOUT) { |
if (rc == ETIMEDOUT) { |
lu_task->error = 1; |
lu_task->error = 1; |
ISTGT_ERRLOG("timeout trans_cond CmdSN=%u\n", | now = time(NULL); |
lu_task->lu_cmd.CmdSN); | ISTGT_ERRLOG("timeout trans_cond CmdSN=%u (time=%d)\n", |
| lu_task->lu_cmd.CmdSN, (int)difftime(now, start)); |
return -1; |
return -1; |
} |
} |
lu_task->error = 1; |
lu_task->error = 1; |