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"); \ }; \