[DRBD-user] kernel oops drbd 8.0_pre2 on Fedora Core 5 and RHEL4

Michael Paesold mpaesold at gmx.at
Wed Apr 12 16:24:12 CEST 2006

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


Lars Ellenberg wrote:

>/ 2006-04-11 15:51:18 +0100
> \ Langemeyer, Werner (IBW):
>> Lars,
>>
>> the patch is really in use. Information below, what would you like me to
>> do?
>
> comment out the call to blk_run_queu in drbd_bitmap.c drbd_bm_rw(),
> and see what happens.

I have added some debug code instead of uncommenting the blk_run_queue call 
(see diffs below). Just before the oops, I get these messages:

drbd1: going to call drbd_blk_run_queue
drbd1: in drbd_blk_run_queue
drbd1: #q != NULL
Unable to handle kernel NULL pointer dereference at virtual address 00000004
...

So the result of bdev_get_queue is actually not NULL. Instead there must be 
something else that's NULL, but not the queue itself.

Is there something else to try?

Best Regards,
Michael Paesold

diff -urNp drbd-8.0-pre2/drbd/drbd_bitmap.c 
drbd-8.0-pre2a/drbd/drbd_bitmap.c
--- drbd-8.0-pre2/drbd/drbd_bitmap.c 2006-04-12 16:15:00.000000000 +0200
+++ drbd-8.0-pre2a/drbd/drbd_bitmap.c 2006-04-12 16:06:52.000000000 +0200
@@ -758,6 +758,7 @@ STATIC void drbd_bm_rw(struct Drbd_Conf
   drbd_bm_page_io_async(mdev,b,i,rw);
  }

+ WARN("going to call drbd_blk_run_queue\n");
  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",
diff -urNp drbd-8.0-pre2/drbd/drbd_int.h drbd-8.0-pre2a/drbd/drbd_int.h
--- drbd-8.0-pre2/drbd/drbd_int.h 2006-04-12 16:15:00.000000000 +0200
+++ drbd-8.0-pre2a/drbd/drbd_int.h 2006-04-12 16:08:19.000000000 +0200
@@ -1674,7 +1674,11 @@ static inline int drbd_queue_order_type(

 #define drbd_blk_run_queue(q) do { \
  request_queue_t *_q = (q); \
- if (_q) blk_run_queue(_q); \
+ WARN("in drbd_blk_run_queue\n");\
+ if (_q) {   \
+  WARN("#q != NULL\n"); \
+  blk_run_queue(_q); \
+ }    \
  else {    \
   WARN(#q "== NULL??\n"); \
  };    \





More information about the drbd-user mailing list