This patch is extracted from the cd packet writing patch, but since it
seems to be a generic cleanup patch, not directly related to the packet
patch, maybe this should be included in the standard kernel.
The patch is for kernel 2.4.10-pre15.
--- linux/drivers/block/ll_rw_blk.c.orig	Sun Sep 23 20:11:14 2001
+++ linux/drivers/block/ll_rw_blk.c	Sun Sep 23 20:09:36 2001
@@ -415,7 +415,7 @@
 	q->head_active    	= 1;
 }
-#define blkdev_free_rq(list) list_entry((list)->next, struct request, table);
+#define blkdev_get_rq(list) list_entry((list)->next, struct request, table)
 /*
  * Get a free request. io_request_lock must be held and interrupts
  * disabled on the way in.
@@ -425,7 +425,7 @@
 	struct request *rq = NULL;
 	if (!list_empty(&q->request_freelist[rw])) {
-		rq = blkdev_free_rq(&q->request_freelist[rw]);
+		rq = blkdev_get_rq(&q->request_freelist[rw]);
 		list_del(&rq->table);
 		rq->rq_status = RQ_ACTIVE;
 		rq->special = NULL;
@@ -459,18 +459,6 @@
 	return rq;
 }
-static inline struct request *get_request_wait(request_queue_t *q, int rw)
-{
-	register struct request *rq;
-
-	spin_lock_irq(&io_request_lock);
-	rq = get_request(q, rw);
-	spin_unlock_irq(&io_request_lock);
-	if (rq)
-		return rq;
-	return __get_request_wait(q, rw);
-}
-
 /* RO fail safe mechanism */
 static long ro_bits[MAX_BLKDEV][8];
@@ -978,7 +966,7 @@
 	/* Verify requested block sizes. */
 	for (i = 0; i < nr; i++) {
 		struct buffer_head *bh = bhs[i];
-		if (bh->b_size % correct_size) {
+		if (bh->b_size & (correct_size - 1)) {
 			printk(KERN_NOTICE "ll_rw_block: device %s: "
 			       "only %d-char blocks implemented (%u)\n",
 			       kdevname(bhs[0]->b_dev),
@@ -1039,7 +1027,6 @@
 extern int stram_device_init (void);
 #endif
-
 /**
  * end_that_request_first - end I/O on one buffer.
  * @req:      the request being processed
@@ -1066,8 +1053,8 @@
 	req->errors = 0;
 	if (!uptodate)
-		printk("end_request: I/O error, dev %s (%s), sector %lu\n",
-			kdevname(req->rq_dev), name, req->sector);
+		printk("end_request: I/O error, cmd %d dev %s (%s), sector %lu\n",
+			req->cmd, kdevname(req->rq_dev), name, req->sector);
 	if ((bh = req->bh) != NULL) {
 		nsect = bh->b_size >> 9;
-- Peter Österlund petero2@telia.com Sköndalsvägen 35 http://w1.894.telia.com/~u89404340 S-128 66 Sköndal +46 8 942647 Sweden- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/