[prev in list] [next in list] [prev in thread] [next in thread]
List: drbd-cvs
Subject: [DRBD-cvs] drbd by lars; * no more "kupdate submitting !uptodate ...
From: drbd-cvs () linbit ! com
Date: 2004-04-30 9:47:03
Message-ID: 20040430094703.6053215DF5E () garcon ! linbit ! com
[Download RAW message or body]
DRBD CVS committal
Author : lars
Module : drbd
Dir : drbd/drbd
Modified Files:
Tag: rel-0_7-branch
drbd_compat_wrappers.h drbd_main.c drbd_receiver.c
Log Message:
* no more "kupdate submitting !uptodate buffers", thats not our business
* remove anoying INFO("unplug")
sorry, leftover from my last debug session.
* more detailed info about unexpected values on Unconfigure
* want to see the generation counters upon connect
* going StandAlone when already Primary, but we decide to
become SyncTarget on connect.
ToDo: panic on connection loss when INCONSITENT|DISKLESS
* another FIXME comment
* missing part from drbdsetup (ERR == ENODATA)
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_compat_wrappers.h,v
retrieving revision 1.1.2.39
retrieving revision 1.1.2.40
diff -u -3 -r1.1.2.39 -r1.1.2.40
--- drbd_compat_wrappers.h 29 Apr 2004 14:43:26 -0000 1.1.2.39
+++ drbd_compat_wrappers.h 30 Apr 2004 09:46:57 -0000 1.1.2.40
@@ -185,11 +185,13 @@
D_ASSERT(buffer_locked(bh));
D_ASSERT(buffer_mapped(bh));
// D_ASSERT(buffer_dirty(bh)); // It is not true ?!?
+ /* kupdated keeps submitting "non-uptodate" buffers.
ERR_IF (!buffer_uptodate(bh)) {
ERR("[%s/%d]: bh_src->b_state=%lx bh->b_state=%lx\n",
current->comm, current->pid,
bh_src->b_state, bh->b_state);
};
+ */
// FIXME should not be necessary;
// remove if the assertions above do not trigger.
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_main.c,v
retrieving revision 1.73.2.157
retrieving revision 1.73.2.158
diff -u -3 -r1.73.2.157 -r1.73.2.158
--- drbd_main.c 29 Apr 2004 14:43:26 -0000 1.73.2.157
+++ drbd_main.c 30 Apr 2004 09:46:57 -0000 1.73.2.158
@@ -461,6 +461,7 @@
void _drbd_thread_stop(struct Drbd_thread *thi, int restart,int wait)
{
if (!thi->task) return;
+ /* test on ->state useless now since we use reparent_to_init */
if (thi->task->state == -1
|| thi->task->state == TASK_ZOMBIE
|| thi->task->flags & PF_EXITING ) {
@@ -1050,7 +1051,6 @@
#endif
drbd_dev *mdev = q->queuedata;
- INFO("%s [%d]: unplug\n",current->comm, current->pid);
/* unplug FIRST */
spin_lock_irq(q->queue_lock);
blk_remove_plug(q);
@@ -1190,9 +1190,11 @@
* oldest_barrier
*/
- D_ASSERT(mdev->ee_in_use==0);
- D_ASSERT(mdev->ee_vacant==32 /*EE_MININUM*/);
- D_ASSERT(mdev->epoch_size==0);
+ if ( mdev->ee_in_use != 0
+ || mdev->ee_vacant != 32 /* EE_MININUM */
+ || mdev->epoch_size != 0)
+ ERR("ee_in_use:%d ee_vacant:%d epoch_size:%d\n",
+ mdev->ee_in_use, mdev->ee_vacant, mdev->epoch_size);
#define ZAP(x) memset(&x,0,sizeof(x))
ZAP(mdev->conf);
ZAP(mdev->sync_conf);
@@ -1406,6 +1408,8 @@
SZO(struct buffer_head);
SZO(Drbd_Polymorph_Packet);
SZO(struct drbd_socket);
+ SZO(struct bm_extent);
+ SZO(struct lc_element);
SZO(struct semaphore);
SZO(wait_queue_head_t);
SZO(spinlock_t);
@@ -2108,13 +2112,14 @@
return 0;
}
-#if 0
+#if 1
#define MeGC(x) mdev->gen_cnt[x]
#define PeGC(x) be32_to_cpu(peer->gen_cnt[x])
void drbd_dump_md(drbd_dev *mdev, Drbd_Parameter_Packet *peer, int verbose)
{
- INFO("MeGCs: %c:%08x:%08x:%08x:%08x:%c%c\n",
+ INFO("I am(%c): %c:%08x:%08x:%08x:%08x:%c%c\n",
+ mdev->state == Primary ? 'P':'S',
MeGC(Flags) & MDF_Consistent ? '1' : '0',
MeGC(HumanCnt),
MeGC(TimeoutCnt),
@@ -2123,7 +2128,8 @@
MeGC(Flags) & MDF_PrimaryInd ? '1' : '0',
MeGC(Flags) & MDF_ConnectedInd ? '1' : '0');
if (peer) {
- INFO("PeGCs: %c:%08x:%08x:%08x:%08x:%c%c\n",
+ INFO("Peer(%c): %c:%08x:%08x:%08x:%08x:%c%c\n",
+ be32_to_cpu(peer->state) == Primary ? 'P':'S',
PeGC(Flags) & MDF_Consistent ? '1' : '0',
PeGC(HumanCnt),
PeGC(TimeoutCnt),
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_receiver.c,v
retrieving revision 1.97.2.135
retrieving revision 1.97.2.136
diff -u -3 -r1.97.2.135 -r1.97.2.136
--- drbd_receiver.c 29 Apr 2004 14:43:27 -0000 1.97.2.135
+++ drbd_receiver.c 30 Apr 2004 09:46:57 -0000 1.97.2.136
@@ -1201,7 +1201,10 @@
/*
FIXME
*/
- WARN("Current Primary becomming sync TARGET! Data corruption in progress?\n");
+ ERR("Current Primary shall become sync TARGET! Aborting to prevent data corruption.\n");
+ set_cstate(mdev,StandAlone);
+ mdev->receiver.t_state = Exiting;
+ return FALSE;
}
mdev->gen_cnt[Flags] &= ~MDF_Consistent;
set_cstate(mdev,WFBitMapT);
@@ -1296,6 +1299,10 @@
}
// We just started resync. Now we can be sure that local disk IO is okay.
+/*
+ * FIXME this should only be D_ASSERT here.
+ * *doing* it here masks a logic bug elsewhere, I think.
+ */
clear_bit(PARTNER_DISKLESS,&mdev->flags);
clear_bit(DISKLESS,&mdev->flags);
smp_wmb();
@@ -1351,8 +1358,7 @@
while (size > 0) {
want = min_t(int,size,sizeof(sink));
r = drbd_recv(mdev,sink,want);
- D_ASSERT(r >= 0);
- if (r < 0) break;
+ ERR_IF(r < 0) break;
size -= r;
}
return (size == 0);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic