patch-2.2.18 linux/drivers/s390/block/dasd_3990_erp.c

Next file: linux/drivers/s390/block/dasd_diag.c
Previous file: linux/drivers/s390/block/dasd.h
Back to the patch index
Back to the overall index

diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/drivers/s390/block/dasd_3990_erp.c linux/drivers/s390/block/dasd_3990_erp.c
@@ -64,13 +64,22 @@
 dasd_3990_erp_examine_24 (char *sense)
 {
 
-	/* check for 'Command Recejct' which is always a fatal error  */
+	/* check for 'Command Recejct' whithout environmental data present  */
 	if (sense[0] & 0x80) {
-		return dasd_era_fatal;
-	}
-	/* check for 'Invalid Track Format'                           */
+                if (sense[2] &0x10){
+                        return dasd_era_recover;
+                } else {
+                        return dasd_era_fatal;
+                }
+        }
+	
+        /* check for 'Invalid Track Format' whithout environmental data present  */
 	if (sense[1] & 0x40) {
-		return dasd_era_fatal;
+                if (sense[2] &0x10){
+                        return dasd_era_recover;
+                } else {
+                        return dasd_era_fatal;
+                }
 	}
 	/* check for 'No Record Found'                                */
 	if (sense[1] & 0x08) {

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)