Skip to contentSkip to conversation

block scsi_ioctl.c lk 2.5.66

PATCH New Douglas Gilbert 1 participant 1 message Mar 26, 2003

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 block scsi_ioctl.c lk 2.5.66

Changelog:
- extends block SCSI_IOCTL_SEND_COMMAND timeout on SEND DIAGNOSTIC to the same as FORMAT (i.e. 2 hours)
- makes SCSI_IOCTL_SEND_COMMAND return SCSI status (rather than EIO) for compatibility
- make do_blk_rq() a static function

Doug Gilbert

drivers/block/scsi_ioctl.c2566dpg renamed from drivers/block/scsi_ioctl.c +5 -2
@@ -45,7 +45,8 @@
 #define SCSI_SENSE_BUFFERSIZE 64
 #endif
 
-int blk_do_rq(request_queue_t *q, struct block_device *bdev, struct request *rq)
+static int blk_do_rq(request_queue_t *q, struct block_device *bdev, 
+		     struct request *rq)
 {
 	DECLARE_COMPLETION(wait);
 	int err = 0;
@@ -368,6 +369,7 @@
 		goto error;
 
 	switch (opcode) {
+		case SEND_DIAGNOSTIC:
 		case FORMAT_UNIT:
 			rq->timeout = FORMAT_UNIT_TIMEOUT;
 			break;
@@ -398,7 +400,8 @@
 	if (in_len)
 		rq->flags |= REQ_RW;
 
-	err = blk_do_rq(q, bdev, rq);
+	blk_do_rq(q, bdev, rq);
+	err = rq->errors & 0xff;	/* only 8 bit SCSI status */
 	if (err) {
 		if (rq->sense_len)
 			if (copy_to_user(sic->data, rq->sense, rq->sense_len))