From: Kevin Corry <[email-masked]>

Record basic I/O statistics for mapped devices.

Signed-Off-By: Kevin Corry <[email-masked]>
Signed-Off-By: Alasdair G Kergon <[email-masked]>

Index: linux-2.6.16-rc1/drivers/md/dm.c
===================================================================
--- linux-2.6.16-rc1.orig/drivers/md/dm.c	2006-01-20 18:41:11.000000000 +0000
+++ linux-2.6.16-rc1/drivers/md/dm.c	2006-01-20 20:17:48.000000000 +0000
@@ -573,10 +573,14 @@ static void __split_bio(struct mapped_de
 static int dm_request(request_queue_t *q, struct bio *bio)
 {
 	int r;
+	int rw = bio_data_dir(bio);
 	struct mapped_device *md = q->queuedata;
 
 	down_read(&md->io_lock);
 
+	disk_stat_inc(dm_disk(md), ios[rw]);
+	disk_stat_add(dm_disk(md), sectors[rw], bio_sectors(bio));
+
 	/*
 	 * If we're suspended we have to queue
 	 * this io for later.