patch-2.4.15 linux/drivers/s390/char/tape34xx.c

Next file: linux/drivers/s390/char/tapechar.c
Previous file: linux/drivers/s390/block/dasd_eckd.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.14/linux/drivers/s390/char/tape34xx.c linux/drivers/s390/char/tape34xx.c
@@ -1631,7 +1631,7 @@
 	tapestate_set (ti, TS_DONE);
 	ti->rc = 0;
 	ti->wanna_wakeup=1;
-	wake_up_interruptible (&ti->wq);
+	wake_up (&ti->wq);
 }
 
 void
@@ -2050,8 +2050,13 @@
 	return;
     case 0x38:
 	// Physical end of tape. A read/write operation reached the physical end of tape.
-	if (tapestate_get(ti)==TS_WRI_INIT) {
+	if (tapestate_get(ti)==TS_WRI_INIT ||
+	    tapestate_get(ti)==TS_DSE_INIT ||
+	    tapestate_get(ti)==TS_EGA_INIT ||
+	    tapestate_get(ti)==TS_WTM_INIT){
  	    tape34xx_error_recovery_has_failed(ti,ENOSPC);
+	} else {
+	    tape34xx_error_recovery_has_failed(ti,EIO);
 	}
 	return;
     case 0x39:

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