[DRBD-user] oops on 2.6.5-rc3-bk2 + drbd-0.7-cvs

Andreas Schultz aschultz at tpip.net
Tue Apr 6 15:53:51 CEST 2004

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


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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);

Andreas
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAcrZ0bukMzn5TCZERAm59AJ9VFF13YVoFvz4MnZzBR6UdqyEIugCcD13A
/iniq3kWDdZZcF11ylRiYW8=
=UcZo
-----END PGP SIGNATURE-----



More information about the drbd-user mailing list