Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
> > so, to summarise:
> > linux-2.6.6 will have blk_run_queues() removed causing a missing symbol in the
> > drbd module, blk_run_queue(Q) does not work with drbd on md devices, so
> > drbd-0.7 will not work with current 2.6 versions.
> >
> > or did i miss something?
>
> no, you are right so far. expect a fix during next week.
> maybe sooner (this weekend), if it is obvious.
try this:
Index: drbd_actlog.c
===================================================================
RCS file: /home/lars/DRBD/CVSHOME/drbd/drbd/drbd/Attic/drbd_actlog.c,v
retrieving revision 1.1.2.83
diff -u -p -r1.1.2.83 drbd_actlog.c
--- drbd_actlog.c 9 Apr 2004 06:53:43 -0000 1.1.2.83
+++ drbd_actlog.c 17 Apr 2004 13:10:37 -0000
@@ -77,8 +77,12 @@ int drbd_md_sync_page_io(drbd_dev *mdev,
init_completion(&event);
bio.bi_private = &event;
bio.bi_end_io = drbd_md_io_complete;
+#ifdef BIO_RW_SYNC
+ submit_bio(rw | (1 << BIO_RW_SYNC), &bio);
+#else
submit_bio(rw, &bio);
drbd_blk_run_queue(bdev_get_queue(mdev->md_bdev));
+#endif
wait_for_completion(&event);
return test_bit(BIO_UPTODATE, &bio.bi_flags);
Index: drbd_compat_wrappers.h
===================================================================
RCS file: /home/lars/DRBD/CVSHOME/drbd/drbd/drbd/Attic/drbd_compat_wrappers.h,v
retrieving revision 1.1.2.37
diff -u -p -r1.1.2.37 drbd_compat_wrappers.h
--- drbd_compat_wrappers.h 9 Apr 2004 06:53:43 -0000 1.1.2.37
+++ drbd_compat_wrappers.h 17 Apr 2004 13:06:50 -0000
@@ -511,10 +511,8 @@ static inline void drbd_generic_make_req
static inline void drbd_blk_run_queue(request_queue_t *q)
{
- if (q && q->queue_lock && q->request_fn)
- blk_run_queue(q);
- else
- blk_run_queues();
+ if (q && q->unplug_fn)
+ q->unplug_fn(q);
}
static inline void drbd_kick_lo(drbd_dev *mdev)
Index: drbd_fs.c
===================================================================
RCS file: /home/lars/DRBD/CVSHOME/drbd/drbd/drbd/drbd_fs.c,v
retrieving revision 1.28.2.78
diff -u -p -r1.28.2.78 drbd_fs.c
--- drbd_fs.c 29 Mar 2004 16:15:57 -0000 1.28.2.78
+++ drbd_fs.c 15 Apr 2004 06:33:37 -0000
@@ -549,9 +549,10 @@ int drbd_set_state(drbd_dev *mdev,Drbd_S
if ( wait_event_interruptible( mdev->cstate_wait,
atomic_read(&mdev->ap_pending_cnt) == 0 ) ) {
ONLY_IN_26(
- if ( newstate & Secondary )
+ if ( newstate & Secondary ) {
D_ASSERT(mdev->this_bdev->bd_holder == drbd_sec_holder);
bd_release(mdev->this_bdev);
+ }
)
return -EINTR;
}
Index: drbd_main.c
===================================================================
RCS file: /home/lars/DRBD/CVSHOME/drbd/drbd/drbd/drbd_main.c,v
retrieving revision 1.73.2.149
diff -u -p -r1.73.2.149 drbd_main.c
--- drbd_main.c 6 Apr 2004 14:07:00 -0000 1.73.2.149
+++ drbd_main.c 17 Apr 2004 13:24:44 -0000
@@ -1046,9 +1046,8 @@ STATIC void drbd_send_write_hint(void *d
}
#else
-STATIC void drbd_send_write_hint(void *data)
+STATIC void drbd_send_write_hint(request_queue_t *q)
{
- request_queue_t *q = data;
drbd_dev *mdev = q->queuedata;
Drbd_Header h;