[DRBD-cvs] svn commit by lars - r2154 - trunk/drbd - generically resort to drbd_blk_run_queue where we need

drbd-cvs at lists.linbit.com drbd-cvs at lists.linbit.com
Wed Apr 19 10:25:48 CEST 2006


Author: lars
Date: 2006-04-19 10:25:47 +0200 (Wed, 19 Apr 2006)
New Revision: 2154

Modified:
   trunk/drbd/drbd_bitmap.c
   trunk/drbd/drbd_compat_wrappers.h
   trunk/drbd/drbd_int.h
Log:
generically resort to drbd_blk_run_queue where we need to kick a lower level block device

Modified: trunk/drbd/drbd_bitmap.c
===================================================================
--- trunk/drbd/drbd_bitmap.c	2006-04-18 20:07:40 UTC (rev 2153)
+++ trunk/drbd/drbd_bitmap.c	2006-04-19 08:25:47 UTC (rev 2154)
@@ -757,8 +757,8 @@
 		/* let the layers below us try to merge these bios... */
 		drbd_bm_page_io_async(mdev,b,i,rw);
 	}
-	q=bdev_get_queue(mdev->bc->md_bdev);
-	if(q->request_fn) blk_run_queue(q);
+
+	drbd_blk_run_queue(bdev_get_queue(mdev->bc->md_bdev));
 	wait_event(b->bm_io_wait, atomic_read(&b->bm_async_io) == 0);
 	INFO("%s of bitmap took %lu jiffies\n", 
 	     rw == READ ? "reading" : "writing", jiffies - now);

Modified: trunk/drbd/drbd_compat_wrappers.h
===================================================================
--- trunk/drbd/drbd_compat_wrappers.h	2006-04-18 20:07:40 UTC (rev 2153)
+++ trunk/drbd/drbd_compat_wrappers.h	2006-04-19 08:25:47 UTC (rev 2154)
@@ -197,20 +197,7 @@
 			dump_stack();
 		}
 	} else {
-		request_queue_t *q;
-		q = bdev_get_queue(mdev->bc->backing_bdev);
-		/*
-		 * FIXME investigate what makes most sense:
-		 * struct backing_dev_info *bdi;
-		 * bdi = mdev->bc->backing_bdev->bd_inode->i_mapping->backing_dev_info;
-		 * bdi = &q->backing_dev_info;
-		 * blk_run_queue(q);
-		 *
-		 * bdi = &q->backing_dev_info;
-		 * blk_run_backing_dev(bdi,NULL);
-		 */
-		if (q && q->unplug_fn)
-			q->unplug_fn(q);
+		drbd_blk_run_queue(bdev_get_queue(mdev->bc->backing_bdev));
 	}
 }
 

Modified: trunk/drbd/drbd_int.h
===================================================================
--- trunk/drbd/drbd_int.h	2006-04-18 20:07:40 UTC (rev 2153)
+++ trunk/drbd/drbd_int.h	2006-04-19 08:25:47 UTC (rev 2154)
@@ -1671,3 +1671,23 @@
 #endif
 	return rv;
 }
+
+/*
+ * FIXME investigate what makes most sense:
+ * a) blk_run_queue(q);
+ *
+ * b) struct backing_dev_info *bdi;
+ *    b1) bdi = &q->backing_dev_info;
+ *    b2) bdi = mdev->bc->backing_bdev->bd_inode->i_mapping->backing_dev_info;
+ *    blk_run_backing_dev(bdi,NULL);
+ *
+ * c) generic_unplug(q) ? __generic_unplug(q) ?
+ *
+ * d) q->unplug_fn(q), which is what all the drivers/md/ stuff uses...
+ *
+ */
+static inline void drbd_blk_run_queue(request_queue_t *q)
+{
+	if (q && q->unplug_fn)
+		q->unplug_fn(q);
+}



More information about the drbd-cvs mailing list