[DRBD-cvs] drbd by phil; * _drbd_dequeue_work() was a) buggy b) I...
drbd-user@lists.linbit.com
drbd-user@lists.linbit.com
Tue, 3 Feb 2004 08:57:19 +0100 (CET)
DRBD CVS committal
Author : phil
Module : drbd
Dir : drbd/drbd
Modified Files:
Tag: rel-0_7-branch
drbd_dsender.c drbd_int.h
Log Message:
* _drbd_dequeue_work() was
a) buggy
b) Impossible to use correctly.
=> Removed
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_dsender.c,v
retrieving revision 1.1.2.67
retrieving revision 1.1.2.68
diff -u -3 -r1.1.2.67 -r1.1.2.68
--- drbd_dsender.c 1 Feb 2004 18:15:08 -0000 1.1.2.67
+++ drbd_dsender.c 3 Feb 2004 07:57:14 -0000 1.1.2.68
@@ -267,7 +267,11 @@
{
drbd_dev* mdev = (drbd_dev*) data;
- drbd_queue_work(mdev,&mdev->data.work,&mdev->resync_work);
+ if(unlikely(test_and_clear_bit(SYNC_PAUSED,&mdev->flags))) {
+ mdev->resync_work.cb = w_resync_inactive;
+ } else {
+ drbd_queue_work(mdev,&mdev->data.work,&mdev->resync_work);
+ }
}
int w_make_resync_request(drbd_dev* mdev, struct drbd_work* w)
@@ -439,9 +443,7 @@
D_ASSERT(mdev->cstate == SyncSource || mdev->cstate == SyncTarget);
ns = mdev->cstate + (PausedSyncS - SyncSource);
- del_timer_sync(&mdev->resync_timer);
- _drbd_dequeue_work(&mdev->data.work,&mdev->resync_work);
- mdev->resync_work.cb = w_resync_inactive;
+ set_bit(SYNC_PAUSED,&mdev->flags);
_set_cstate(mdev,ns);
INFO("Syncer waits for sync group.\n");
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_int.h,v
retrieving revision 1.58.2.111
retrieving revision 1.58.2.112
diff -u -3 -r1.58.2.111 -r1.58.2.112
--- drbd_int.h 2 Feb 2004 13:17:07 -0000 1.58.2.111
+++ drbd_int.h 3 Feb 2004 07:57:14 -0000 1.58.2.112
@@ -566,13 +566,11 @@
#define COLLECT_ZOMBIES 1
#define SEND_PING 2
#define WRITER_PRESENT 3
-//#define START_SYNC 4
+#define SYNC_PAUSED 4
#define DO_NOT_INC_CONCNT 5
#define WRITE_HINT_QUEUED 6
#define PARTNER_DISKLESS 7
-//#define SYNC_FINISHED 8
#define PROCESS_EE_RUNNING 9
-//#define SYNC_CONTINUE 10
struct BitMap {
unsigned long dev_size;
@@ -956,17 +954,6 @@
spin_lock_irqsave(&mdev->req_lock,flags);
_set_cstate(mdev,ns);
spin_unlock_irqrestore(&mdev->req_lock,flags);
-}
-
-static inline void
-_drbd_dequeue_work(struct drbd_work_queue *q, struct drbd_work *w)
-{
- if(!list_empty(&w->list)) {
- if(down_trylock(&q->s)) {
- printk("down_trylock() failed in drbd_dequeue_work\n");
- }
- list_del_init(&w->list);
- }
}
static inline void