[DRBD-cvs] r1760 - in trunk: drbd testing

svn at svn.drbd.org svn at svn.drbd.org
Sun Feb 13 20:34:23 CET 2005


Author: phil
Date: 2005-02-13 20:34:19 +0100 (Sun, 13 Feb 2005)
New Revision: 1760

Modified:
   trunk/drbd/drbd_int.h
   trunk/drbd/drbd_main.c
   trunk/drbd/drbd_receiver.c
   trunk/drbd/drbd_req.c
   trunk/testing/uml-2.6.gdbinit
Log:
A little debugging session. Basic mirroring is working again...


Modified: trunk/drbd/drbd_int.h
===================================================================
--- trunk/drbd/drbd_int.h	2005-02-12 18:14:25 UTC (rev 1759)
+++ trunk/drbd/drbd_int.h	2005-02-13 19:34:19 UTC (rev 1760)
@@ -1400,8 +1400,8 @@
 {
 	spin_lock(&mdev->peer_seq_lock);
 	mdev->peer_seq = max(mdev->peer_seq, new_seq);
+	spin_unlock(&mdev->peer_seq_lock);
 	wake_up(&mdev->cstate_wait);
-	spin_unlock(&mdev->peer_seq_lock);
 }
 
 static inline int peer_seq(drbd_dev* mdev)

Modified: trunk/drbd/drbd_main.c
===================================================================
--- trunk/drbd/drbd_main.c	2005-02-12 18:14:25 UTC (rev 1759)
+++ trunk/drbd/drbd_main.c	2005-02-13 19:34:19 UTC (rev 1760)
@@ -424,7 +424,7 @@
 	spin_lock_irq(&mdev->tl_lock);
 
 	for(i=-1;i<=1;i++ ) {
-		slot = mdev->tl_hash + ee_hash_fn(mdev,
+		slot = mdev->ee_hash + ee_hash_fn(mdev,
 						  sector + i*(1<<(HT_SHIFT)));
 		hlist_for_each_entry(ee, n, slot, colision) {
 			if( overlaps(drbd_ee_get_sector(ee),
@@ -1614,6 +1614,7 @@
 	atomic_set(&mdev->unacked_cnt,0);
 	atomic_set(&mdev->local_cnt,0);
 	atomic_set(&mdev->resync_locked,0);
+	atomic_set(&mdev->packet_seq,0);
 
 	init_MUTEX(&mdev->md_io_mutex);
 	init_MUTEX(&mdev->data.mutex);

Modified: trunk/drbd/drbd_receiver.c
===================================================================
--- trunk/drbd/drbd_receiver.c	2005-02-12 18:14:25 UTC (rev 1759)
+++ trunk/drbd/drbd_receiver.c	2005-02-13 19:34:19 UTC (rev 1760)
@@ -756,7 +756,6 @@
 	int epoch_size;
 	Drbd_Barrier_Packet *p = (Drbd_Barrier_Packet*)h;
 
-	ERR_IF(mdev->state.s.role != Secondary) return FALSE;
 	ERR_IF(h->length != (sizeof(*p)-sizeof(*h))) return FALSE;
 
 	rv = drbd_recv(mdev, h->payload, h->length);

Modified: trunk/drbd/drbd_req.c
===================================================================
--- trunk/drbd/drbd_req.c	2005-02-12 18:14:25 UTC (rev 1759)
+++ trunk/drbd/drbd_req.c	2005-02-13 19:34:19 UTC (rev 1760)
@@ -326,15 +326,6 @@
 					drbd_end_req(req, RQ_DRBD_SENT, 1, sector);
 				}
 			}
-			if (!drbd_send_dblock(mdev,req)) {
-				if (mdev->state.s.conn >= Connected)
-					drbd_force_state(mdev,NS(conn,NetworkFailure));
-				dec_ap_pending(mdev);
-				drbd_thread_restart_nowait(&mdev->receiver);
-			} else if(mdev->conf.wire_protocol == DRBD_PROT_A) {
-				dec_ap_pending(mdev);
-				drbd_end_req(req, RQ_DRBD_SENT, 1, sector);
-			}
 		} else if (target_area_out_of_sync) {
 			drbd_read_remote(mdev,req);
 		} else {

Modified: trunk/testing/uml-2.6.gdbinit
===================================================================
--- trunk/testing/uml-2.6.gdbinit	2005-02-12 18:14:25 UTC (rev 1759)
+++ trunk/testing/uml-2.6.gdbinit	2005-02-13 19:34:19 UTC (rev 1760)
@@ -33,20 +33,41 @@
   p $rv->module_core
 end
 
+# for old kernels, worked with linux-2.6.1
+#define linux-ps
+#  set $ps_ph_i = 1<<pidhash_shift
+#  printf "---TASK---  -PID-  --------COMM----------\n"
+#  while $ps_ph_i > 0
+#    set $ps_ph_i = $ps_ph_i - 1
+#    set $ps_plist = &pid_hash[0][$ps_ph_i]
+#    set $ps_pitem = $ps_plist->next
+#    while $ps_pitem != $ps_plist
+#      lx-container-of-struct $ps_pitem pid hash_chain
+#      set $ps_pid = $rv
+#      set $ps_h = $ps_pid->task_list.next
+#      lx-container-of-struct $ps_h task_struct pids[0].pid_chain
+#      set $ps_t = $rv
+#      printf "%8p  %-5d  %-20s\n", $ps_t, $ps_pid->nr, $ps_t->comm
+#      set $ps_pitem = $ps_pitem->next
+#    end
+#  end
+#end
+
 define linux-ps
   set $ps_ph_i = 1<<pidhash_shift
   printf "---TASK---  -PID-  --------COMM----------\n"
   while $ps_ph_i > 0
     set $ps_ph_i = $ps_ph_i - 1
-    set $ps_plist = &pid_hash[0][$ps_ph_i]
-    set $ps_pitem = $ps_plist->next
-    while $ps_pitem != $ps_plist
-      lx-container-of-struct $ps_pitem pid hash_chain
+    set $ps_pitem = pid_hash[0][$ps_ph_i]->first
+    while $ps_pitem != 0
+      lx-container-of-struct $ps_pitem pid pid_chain
       set $ps_pid = $rv
-      set $ps_h = $ps_pid->task_list.next
-      lx-container-of-struct $ps_h task_struct pids[0].pid_chain
+      set $ps_h = $ps_pid->pid_list.next
+      lx-container-of-struct $ps_h task_struct pids[0].pid_list
       set $ps_t = $rv
-      printf "%8p  %-5d  %-20s\n", $ps_t, $ps_pid->nr, $ps_t->comm
+      if $ps_pid->nr != 0
+        printf "%8p  %-5d  %-20s\n", $ps_t, $ps_pid->nr, $ps_t->comm
+      end
       set $ps_pitem = $ps_pitem->next
     end
   end



More information about the drbd-cvs mailing list