Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
/ 2006-04-10 14:35:01 +0100 \ Langemeyer, Werner (IBW): > Dear drbd-user, > > I could not get the drbd version 8 up and running on RHEL4, FC5 as well as on Vmware Workstation 5.5.1 with RHEL4 and FC5 installed. > Call Trace: > [<c02dc5cc>] _spin_lock_irqsave+0x9/0xd [<c01b7892>] blk_run_queue+0xf/0x37 > [<d09db7df>] drbd_bm_rw+0x16f/0x3bf [drbd] [<d09eb966>] drbd_al_shrink+0x19 try the patch below. I assumed that any block device need to have a queue, or that the blk_run_queue would if (NULL=q) return; or something like that. right now, I assumed that would be illegal. Index: drbd_bitmap.c =================================================================== --- drbd_bitmap.c (revision 2143) +++ drbd_bitmap.c (working copy) @@ -758,7 +758,7 @@ drbd_bm_page_io_async(mdev,b,i,rw); } - blk_run_queue(bdev_get_queue(mdev->bc->md_bdev)); + 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); Index: drbd_int.h =================================================================== --- drbd_int.h (revision 2143) +++ drbd_int.h (working copy) @@ -1671,3 +1671,11 @@ #endif return rv; } + +#define drbd_blk_run_queue(q) do { \ + request_queue_t *_q = (q); \ + if (_q) blk_run_queue(_q); \ + else { \ + WARN(#q "== NULL??\n"); \ + }; \ +} while (0)