[DRBD-cvs] DRBD CVS: drbd by phil from
drbd-cvs@linbit.com
drbd-cvs@linbit.com
Sat, 10 Jan 2004 20:24:00 +0100 (CET)
DRBD CVS committal
Author : phil
Host :
Module : drbd
Dir : drbd/drbd
Modified Files:
Tag: rel-0_7-branch
drbd_actlog.c drbd_main.c
Log Message:
*) mempools were destoryed before their objects were freed. FIXED.
*) Finishing functionality of drbd_rs_begin_io()
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_actlog.c,v
retrieving revision 1.1.2.42
retrieving revision 1.1.2.43
diff -u -3 -r1.1.2.42 -r1.1.2.43
--- drbd_actlog.c 9 Jan 2004 08:47:31 -0000 1.1.2.42
+++ drbd_actlog.c 10 Jan 2004 19:24:00 -0000 1.1.2.43
@@ -525,6 +525,7 @@
ext->rs_left -= cleared;
D_ASSERT((long)ext->rs_left >= 0);
} else {
+ WARN("Recounting sectors (resync LRU too small?)\n");
ext->lce.lc_number = enr;
ext->rs_left = bm_count_sectors(mdev->mbds_id,enr);
}
@@ -598,12 +599,18 @@
spin_lock_irq(&mdev->al_lock);
bm_ext = (struct bm_extent*) lc_get(mdev->resync,enr);
- if(bm_ext) set_bit(BME_NO_WRITES,&bm_ext->flags); // within the lock
+ if(bm_ext) {
+ if(bm_ext->lce.lc_number != enr) {
+ bm_ext->lce.lc_number = enr;
+ bm_ext->rs_left = bm_count_sectors(mdev->mbds_id,enr);
+ }
+ set_bit(BME_NO_WRITES,&bm_ext->flags); // within the lock
+ }
if(bm_ext == 0) rs_flags=mdev->resync->flags;
spin_unlock_irq(&mdev->al_lock);
if(rs_flags & LC_STARVING) {
- WARN("Have to wait for element (resync too small?)\n");
+ WARN("Have to wait for element (resync LRU too small?)\n");
}
if(rs_flags & LC_DIRTY) {
BUG(); // WARN("Ongoing RS update (???)\n");
@@ -660,7 +667,7 @@
bm_ext = (struct bm_extent*) lc_find(mdev->resync,enr);
if(!bm_ext) {
spin_unlock_irq(&mdev->al_lock);
- ERR("bme_put() called, but extent not found");
+ ERR("drbd_rs_complete_io() called, but extent not found");
return;
}
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_main.c,v
retrieving revision 1.73.2.87
retrieving revision 1.73.2.88
diff -u -3 -r1.73.2.87 -r1.73.2.88
--- drbd_main.c 10 Jan 2004 14:46:11 -0000 1.73.2.87
+++ drbd_main.c 10 Jan 2004 19:24:00 -0000 1.73.2.88
@@ -1102,7 +1102,6 @@
if (drbd_conf) {
if (drbd_proc)
remove_proc_entry("drbd",&proc_root);
- drbd_destroy_mempools();
i=minor_count;
while (i--) {
drbd_dev *mdev = &drbd_conf[i];
@@ -1140,6 +1139,7 @@
if (mdev->act_log) lc_free(mdev->act_log);
}
+ drbd_destroy_mempools();
}
// kfree(NULL) is noop