patch-2.4.7 linux/drivers/scsi/osst.c
Next file: linux/drivers/scsi/osst.h
Previous file: linux/drivers/scsi/ncr53c8xx.c
Back to the patch index
Back to the overall index
- Lines: 69
- Date:
Thu Jul 19 21:18:15 2001
- Orig file:
v2.4.6/linux/drivers/scsi/osst.c
- Orig date:
Tue Jul 3 17:08:20 2001
diff -u --recursive --new-file v2.4.6/linux/drivers/scsi/osst.c linux/drivers/scsi/osst.c
@@ -290,7 +290,7 @@
#if DEBUG
STp->write_pending = 0;
#endif
- up(SCpnt->request.sem);
+ complete(SCpnt->request.waiting);
}
#if DEBUG
else if (debugging)
@@ -321,8 +321,9 @@
}
}
- cmd[1] |= (SRpnt->sr_device->lun << 5) & 0xe0;
- init_MUTEX_LOCKED(&STp->sem);
+ if (SRpnt->sr_device->scsi_level <= SCSI_2)
+ cmd[1] |= (SRpnt->sr_device->lun << 5) & 0xe0;
+ init_completion(&STp->wait);
SRpnt->sr_use_sg = (bytes > (STp->buffer)->sg[0].length) ?
(STp->buffer)->use_sg : 0;
if (SRpnt->sr_use_sg) {
@@ -334,15 +335,15 @@
bp = (STp->buffer)->b_data;
SRpnt->sr_data_direction = direction;
SRpnt->sr_cmd_len = 0;
- SRpnt->sr_request.sem = &(STp->sem);
+ SRpnt->sr_request.waiting = &(STp->wait);
SRpnt->sr_request.rq_status = RQ_SCSI_BUSY;
SRpnt->sr_request.rq_dev = STp->devt;
scsi_do_req(SRpnt, (void *)cmd, bp, bytes, osst_sleep_done, timeout, retries);
if (do_wait) {
- down(SRpnt->sr_request.sem);
- SRpnt->sr_request.sem = NULL;
+ wait_for_completion(SRpnt->sr_request.waiting);
+ SRpnt->sr_request.waiting = NULL;
STp->buffer->syscall_result = osst_chk_result(STp, SRpnt);
#ifdef OSST_INJECT_ERRORS
if (STp->buffer->syscall_result == 0 &&
@@ -374,8 +375,8 @@
else
STp->nbr_finished++;
#endif
- down(&(STp->sem));
- (STp->buffer)->last_SRpnt->sr_request.sem = NULL;
+ wait_for_completion(&(STp->wait));
+ (STp->buffer)->last_SRpnt->sr_request.waiting = NULL;
STp->buffer->syscall_result = osst_chk_result(STp, STp->buffer->last_SRpnt);
@@ -712,7 +713,7 @@
result = osst_get_frame_position (STp, aSRpnt);
if (result == -EIO)
if ((result = osst_write_error_recovery(STp, aSRpnt, 0)) == 0)
- return 0; /* successfull recovery leaves drive ready for frame */
+ return 0; /* successful recovery leaves drive ready for frame */
if (result < 0) break;
if (STp->first_frame_position == curr &&
((minlast < 0 &&
@@ -1379,7 +1380,7 @@
unsigned char cmd[MAX_COMMAND_SIZE];
Scsi_Request * SRpnt;
int dev = TAPE_NR(STp->devt);
- int expected = 0;
+ int expected __attribute__ ((__unused__));
int attempts = 1000 / skip;
int flag = 1;
long startwait = jiffies;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)