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

Philipp Reisner philipp.reisner at linbit.com
Wed Apr 7 17:29:32 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.


On Tuesday 06 April 2004 14:42, Andreas Schultz wrote:
> On Monday 05 April 2004 16:22, Andreas Schultz wrote:
> > Hi,
> >
> > When attempting to start a drbd device on 2.6.5-rc3-bk2, i get the
> > following oops:
> >
> > Apr  5 16:12:50 sdev01 kernel: Unable to handle kernel NULL pointer
> > dereference at virtual address 00000000 Apr  5 16:12:50 sdev01 kernel:
> > printing eip:
> > Apr  5 16:12:50 sdev01 kernel: c01fcf46
> > Apr  5 16:12:50 sdev01 kernel: *pde = 00000000
> > Apr  5 16:12:50 sdev01 kernel: Oops: 0002 [#1]
> > Apr  5 16:12:50 sdev01 kernel: PREEMPT SMP
> > Apr  5 16:12:50 sdev01 kernel: CPU:    0
> > Apr  5 16:12:51 sdev01 kernel: EIP:    0060:[blk_run_queue+38/128]    Not
> > tainted Apr  5 16:12:51 sdev01 kernel: EFLAGS: 00010002
> > (2.6.5-rc3-bk2-vs0.09.29) Apr  5 16:12:51 sdev01 kernel: EIP is at
> > blk_run_queue+0x26/0x80
>
> I have tracked this down in drivers/block/ll_rw_blk.c to:
>
> void blk_run_queue(struct request_queue *q)
> {
>         unsigned long flags;
>
>         spin_lock_irqsave(q->queue_lock, flags);
> ^^^^^^^^^^^^^
> here, the queue_lock has not been inititalized
>
>         blk_remove_plug(q);
>         q->request_fn(q);
>         spin_unlock_irqrestore(q->queue_lock, flags);
> }
>
> The cruelprint is that i want to use a lvm device as the backend for my
> drbd device and dm devices do not initialise the queue_lock.
>
> setup command: /sbin/drbdsetup /dev/drbd0 disk /dev/nsys/db internal -1
> --on-io-error=panic
>
> comments?


Could you try this patch ?

- There is a good chance that it will "just work".

-Philipp

cvs server: Diffing .
Index: drbd_actlog.c
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_actlog.c,v
retrieving revision 1.1.2.82
diff -u -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       7 Apr 2004 15:26:49 -0000
@@ -78,7 +78,7 @@
        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_queues();
        wait_for_completion(&event);

        return test_bit(BIO_UPTODATE, &bio.bi_flags);
Index: drbd_compat_wrappers.h
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_compat_wrappers.h,v
retrieving revision 1.1.2.36
diff -u -u -r1.1.2.36 drbd_compat_wrappers.h
--- drbd_compat_wrappers.h      15 Mar 2004 17:32:19 -0000      1.1.2.36
+++ drbd_compat_wrappers.h      7 Apr 2004 15:26:49 -0000
@@ -511,7 +511,7 @@

 static inline void drbd_kick_lo(drbd_dev *mdev)
 {
-       blk_run_queue(bdev_get_queue(mdev->backing_bdev));
+       blk_run_queues();
 }

 static inline void drbd_plug_device(drbd_dev *mdev)


-- 
: 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 :



More information about the drbd-user mailing list