Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
On Tuesday 06 April 2004 15:53, Andreas Schultz wrote: > On Tuesday 06 April 2004 15:13, Philipp Reisner wrote: > > [...] > > > How old is your CVS checkout ? > > it's current, from this morning > > > Yes, I can remember that this line: > > > > q->queue_lock = &mdev->req_lock; // needed since we use > > > > was missing. But it is fixed since weeks. > > this line is there, but the queue in question is *NOT* the drbd queue, but > the queue of the device mapper device. I've added some debug output to > drbd_md_sync_page_io() in drbd_actlog.c and this is the output: > > Apr 6 14:22:50 sdev01 kernel: drbd: mdev: f734f000 > Apr 6 14:22:50 sdev01 kernel: drbd: mdev bdev: f7c54040 (dm-3) > ^^^^ > Apr 6 14:22:50 sdev01 kernel: drbd: queue: f7858000 > Apr 6 14:22:50 sdev01 kernel: drbd: queue lock: 00000000 > > > diff -u -r1.1.2.82 drbd_actlog.c > --- drbd_actlog.c 29 Mar 2004 16:15:57 -0000 1.1.2.82 > +++ drbd_actlog.c 6 Apr 2004 13:48:50 -0000 > @@ -64,6 +64,24 @@ > struct bio_vec vec; > struct completion event; > > + char b[BDEVNAME_SIZE]; > + > + request_queue_t *q = bdev_get_queue(mdev->md_bdev); > + if (!q) { > + printk(KERN_ERR > + "drbd_md_sync_page_io: Trying to access " > + "nonexistent block-device %s\n", > + bdevname(mdev->md_bdev, b)); > + return -ENODEV; > + } > + > + printk(KERN_DEBUG "drbd: mdev: %p\n", mdev); > + printk(KERN_DEBUG "drbd: mdev bdev: %p (%s)\n", > + mdev->md_bdev, > + bdevname(mdev->md_bdev, b)); > + printk(KERN_DEBUG "drbd: queue: %p\n", q); > + printk(KERN_DEBUG "drbd: queue lock: %p\n", q->queue_lock); > + > bio_init(&bio); > bio.bi_io_vec = &vec; > vec.bv_page = mdev->md_io_page; > @@ -78,7 +96,8 @@ > bio.bi_private = &event; > bio.bi_end_io = drbd_md_io_complete; > submit_bio(rw, &bio); > - blk_run_queue(bdev_get_queue(mdev->md_bdev)); > + > + blk_run_queue(q); > wait_for_completion(&event); > > return test_bit(BIO_UPTODATE, &bio.bi_flags); > Hmmm, It seems that we are not expected to call blk_run_queue() of a pure "mapping" device, such as a dm target. ... will try to understand that ... -philipp -- : Dipl-Ing Philipp Reisner Tel +43-1-8178292-50 : : LINBIT Information Technologies GmbH Fax +43-1-8178292-82 : : Schönbrunnerstr 244, 1120 Vienna, Austria http://www.linbit.com :