patch-2.4.26 linux-2.4.26/drivers/scsi/scsi_lib.c
Next file: linux-2.4.26/drivers/scsi/scsi_scan.c
Previous file: linux-2.4.26/drivers/scsi/scsi_error.c
Back to the patch index
Back to the overall index
- Lines: 31
- Date:
2004-04-14 06:05:31.000000000 -0700
- Orig file:
linux-2.4.25/drivers/scsi/scsi_lib.c
- Orig date:
2003-08-25 04:44:42.000000000 -0700
diff -urN linux-2.4.25/drivers/scsi/scsi_lib.c linux-2.4.26/drivers/scsi/scsi_lib.c
@@ -405,6 +405,14 @@
*/
if (req->bh) {
/*
+ * Recount segments whether we are immediately going to
+ * requeue the command or not, other code might requeue
+ * it later and since we changed the segment count up above,
+ * we need it updated.
+ */
+ recount_segments(SCpnt);
+
+ /*
* Bleah. Leftovers again. Stick the leftovers in
* the front of the queue, and goose the queue again.
*/
@@ -966,15 +974,6 @@
*/
if( req->special != NULL ) {
SCpnt = (Scsi_Cmnd *) req->special;
- /*
- * We need to recount the number of
- * scatter-gather segments here - the
- * normal case code assumes this to be
- * correct, as it would be a performance
- * lose to always recount. Handling
- * errors is always unusual, of course.
- */
- recount_segments(SCpnt);
} else {
SCpnt = scsi_allocate_device(SDpnt, FALSE, FALSE);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)