fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / s390 / char / tape_std.c
index 2f9fe30..7a76ec4 100644 (file)
@@ -11,7 +11,6 @@
  *              Stefan Bader <shbader@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/bio.h>
@@ -37,20 +36,19 @@ tape_std_assign_timeout(unsigned long data)
 {
        struct tape_request *   request;
        struct tape_device *    device;
+       int rc;
 
        request = (struct tape_request *) data;
        if ((device = request->device) == NULL)
                BUG();
 
-       spin_lock_irq(get_ccwdev_lock(device->cdev));
-       if (request->callback != NULL) {
-               DBF_EVENT(3, "%08x: Assignment timeout. Device busy.\n",
+       DBF_EVENT(3, "%08x: Assignment timeout. Device busy.\n",
                        device->cdev_id);
-               PRINT_ERR("%s: Assignment timeout. Device busy.\n",
-                       device->cdev->dev.bus_id);
-               ccw_device_clear(device->cdev, (long) request);
-       }
-       spin_unlock_irq(get_ccwdev_lock(device->cdev));
+       rc = tape_cancel_io(device, request);
+       if(rc)
+               PRINT_ERR("(%s): Assign timeout: Cancel failed with rc = %i\n",
+                       device->cdev->dev.bus_id, rc);
+
 }
 
 int