lkml.org 
[lkml]   [1996]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 2.0.3 Internal error scsi.c 1672
  From: nigel@sgi.com (Nigel Gamble)
Date: 8 Jul 1996 03:16:22 GMT

On 7 Jul 1996, Nigel Gamble wrote:
> When fscking a dirty filesystem with 2.0.3 (and 2.0.1 and 2.0.2,
> I believe), I get this error multiple times from drivers/scsi/scsi.c:
>
> Internal error scsi.c 1672
>
> The filesystem is marked clean, even though the fsck has not in
> fact run correctly. I had to press reset and reboot 2.0.0 to
> ensure that all my filesystems were correctly fscked.

Mystery solved. The older mask and values were taken from the SCSI-1 spec, it
seems. When the field was expanded to 5 bits from 4 based on the SCSI-2 spec,
there were new cases we needed to handle. The new values were cleverly
allocated so that masking them to 4 bits would cause the right sort of
response.

Leonard

--- linux/include/scsi/scsi.h- Wed Jun 26 01:05:26 1996
+++ linux/include/scsi/scsi.h Sun Jul 7 20:08:48 1996
@@ -94,7 +94,8 @@
#define INTERMEDIATE_GOOD 0x08
#define INTERMEDIATE_C_GOOD 0x0a
#define RESERVATION_CONFLICT 0x0c
-#define QUEUE_FULL 0x1a
+#define COMMAND_TERMINATED 0x11
+#define QUEUE_FULL 0x14

#define STATUS_MASK 0x3e

--- linux/drivers/scsi/scsi.c- Mon Jul 1 10:14:55 1996
+++ linux/drivers/scsi/scsi.c Sun Jul 7 20:17:42 1996
@@ -1621,6 +1621,7 @@
break;

case CHECK_CONDITION:
+ case COMMAND_TERMINATED:
switch (check_sense(SCpnt))
{
case 0:
@@ -1652,6 +1653,7 @@
break;

case BUSY:
+ case QUEUE_FULL:
update_timeout(SCpnt, oldto);
status = REDO;
break;



\
 
 \ /
  Last update: 2005-03-22 13:38    [W:0.087 / U:0.280 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site