patch-1.3.35 linux/drivers/scsi/sr.c

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

diff -u --recursive --new-file v1.3.34/linux/drivers/scsi/sr.c linux/drivers/scsi/sr.c
@@ -989,24 +989,17 @@
 	SCpnt->cmd_len = 0;
 	
 	memset(buffer, 0, 8);
-	
-	scsi_do_cmd (SCpnt,
-		     (void *) cmd, (void *) buffer,
-		     512, sr_init_done,  SR_TIMEOUT,
-		     MAX_RETRIES);
-	
-	if (current->pid == 0)
-	    while(SCpnt->request.rq_status != RQ_SCSI_DONE)
-		barrier();
-	else
-	    if (SCpnt->request.rq_status != RQ_SCSI_DONE){
-		struct semaphore sem = MUTEX_LOCKED;
-		SCpnt->request.sem = &sem;
-		down(&sem);
-		/* Hmm.. Have to ask about this */
-		while (SCpnt->request.rq_status != RQ_SCSI_DONE)
-		    schedule();
-	    };
+
+	/* Do the command and wait.. */
+	{
+	    struct semaphore sem = MUTEX_LOCKED;
+	    SCpnt->request.sem = &sem;
+	    scsi_do_cmd (SCpnt,
+			 (void *) cmd, (void *) buffer,
+			 512, sr_init_done,  SR_TIMEOUT,
+			 MAX_RETRIES);
+	    down(&sem);
+	}
 	
 	the_result = SCpnt->result;
 	retries--;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this