patch-2.4.7 linux/drivers/scsi/scsi_lib.c
Next file: linux/drivers/scsi/scsi_merge.c
Previous file: linux/drivers/scsi/scsi_ioctl.c
Back to the patch index
Back to the overall index
- Lines: 37
- Date:
Thu Jul 19 20:48:04 2001
- Orig file:
v2.4.6/linux/drivers/scsi/scsi_lib.c
- Orig date:
Fri May 4 15:16:28 2001
diff -u --recursive --new-file v2.4.6/linux/drivers/scsi/scsi_lib.c linux/drivers/scsi/scsi_lib.c
@@ -31,6 +31,7 @@
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/smp_lock.h>
+#include <linux/completion.h>
#define __KERNEL_SYSCALLS__
@@ -377,12 +378,15 @@
nsect = bh->b_size >> 9;
blk_finished_io(nsect);
req->bh = bh->b_reqnext;
- req->nr_sectors -= nsect;
- req->sector += nsect;
bh->b_reqnext = NULL;
sectors -= nsect;
bh->b_end_io(bh, uptodate);
if ((bh = req->bh) != NULL) {
+ req->hard_sector += nsect;
+ req->hard_nr_sectors -= nsect;
+ req->sector += nsect;
+ req->nr_sectors -= nsect;
+
req->current_nr_sectors = bh->b_size >> 9;
if (req->nr_sectors < req->current_nr_sectors) {
req->nr_sectors = req->current_nr_sectors;
@@ -419,8 +423,8 @@
* request, wake them up. Typically used to wake up processes trying
* to swap a page into memory.
*/
- if (req->sem != NULL) {
- up(req->sem);
+ if (req->waiting != NULL) {
+ complete(req->waiting);
}
add_blkdev_randomness(MAJOR(req->rq_dev));
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)