patch-2.4.0-test3 linux/drivers/scsi/scsi_scan.c

Next file: linux/drivers/scsi/sd.c
Previous file: linux/drivers/scsi/scsi_lib.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test2/linux/drivers/scsi/scsi_scan.c linux/drivers/scsi/scsi_scan.c
@@ -278,7 +278,6 @@
 		 * is pointless work.
 		 */
 		scsi_initialize_queue(SDpnt, shpnt);
-		blk_queue_headactive(&SDpnt->request_queue, 0);
 		SDpnt->request_queue.queuedata = (void *) SDpnt;
 		/* Make sure we have something that is valid for DMA purposes */
 		scsi_result = ((!shpnt->unchecked_isa_dma)
@@ -425,8 +424,10 @@
 	}
 
 	/* Last device block does not exist.  Free memory. */
-	if (SDpnt != NULL)
+	if (SDpnt != NULL) {
+		blk_cleanup_queue(&SDpnt->request_queue);
 		kfree((char *) SDpnt);
+	}
 
 	/* If we allocated a buffer so we could do DMA, free it now */
 	if (scsi_result != &scsi_result0[0] && scsi_result != NULL) {
@@ -594,7 +595,7 @@
         sprintf (devname, "host%d/bus%d/target%d/lun%d",
                  SDpnt->host->host_no, SDpnt->channel, SDpnt->id, SDpnt->lun);
         if (SDpnt->de) printk ("DEBUG: dir: \"%s\" already exists\n", devname);
-        else SDpnt->de = devfs_mk_dir (scsi_devfs_handle, devname, 0, NULL);
+        else SDpnt->de = devfs_mk_dir (scsi_devfs_handle, devname, NULL);
 
 	for (sdtpnt = scsi_devicelist; sdtpnt;
 	     sdtpnt = sdtpnt->next)
@@ -691,8 +692,6 @@
 	 * is pointless work.
 	 */
 	scsi_initialize_queue(SDpnt, shpnt);
-	blk_queue_headactive(&SDpnt->request_queue, 0);
-	SDpnt->request_queue.queuedata = (void *) SDpnt;
 	SDpnt->host = shpnt;
 	initialize_merge_fn(SDpnt);
 

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