[DRBD-cvs] r1788 - trunk/drbd
www-data
www-data at garcon.linbit.com
Tue Apr 26 21:43:56 CEST 2005
Author: phil
Date: 2005-04-26 21:43:54 +0200 (Tue, 26 Apr 2005)
New Revision: 1788
Modified:
trunk/drbd/drbd_main.c
trunk/drbd/drbd_receiver.c
Log:
Some testing, found and fixed two bugs:
- I forgot to write/read the flags word of the metadata in the module.
- In the drbd_uuid_compare() function the outmasking of the lowest bit
was missing in one place.
Modified: trunk/drbd/drbd_main.c
===================================================================
--- trunk/drbd/drbd_main.c 2005-04-23 17:52:45 UTC (rev 1787)
+++ trunk/drbd/drbd_main.c 2005-04-26 19:43:54 UTC (rev 1788)
@@ -2257,12 +2257,12 @@
if (mdev->state.s.disk > Outdated) flags |= MDF_WasUpToDate;
mdev->md_flags = flags;
+ buffer->la_size=cpu_to_be64(drbd_get_capacity(mdev->this_bdev));
for (i = Current; i < UUID_SIZE; i++)
buffer->uuid[i]=cpu_to_be64(mdev->uuid[i]);
- buffer->la_size=cpu_to_be64(drbd_get_capacity(mdev->this_bdev));
+ buffer->flags = cpu_to_be32(flags);
+ buffer->magic = cpu_to_be32(DRBD_MD_MAGIC);
- buffer->magic=cpu_to_be32(DRBD_MD_MAGIC);
-
buffer->md_size = __constant_cpu_to_be32(MD_RESERVED_SIZE);
buffer->al_offset = __constant_cpu_to_be32(MD_AL_OFFSET);
buffer->al_nr_extents = cpu_to_be32(mdev->act_log->nr_elements);
@@ -2334,9 +2334,10 @@
goto err;
}
+ mdev->la_size = be64_to_cpu(buffer->la_size);
for (i = Current; i < UUID_SIZE; i++)
mdev->uuid[i]=be64_to_cpu(buffer->uuid[i]);
- mdev->la_size = be64_to_cpu(buffer->la_size);
+ mdev->md_flags = be32_to_cpu(buffer->flags);
mdev->sync_conf.al_extents = be32_to_cpu(buffer->al_nr_extents);
if (mdev->sync_conf.al_extents < 7)
mdev->sync_conf.al_extents = 127;
Modified: trunk/drbd/drbd_receiver.c
===================================================================
--- trunk/drbd/drbd_receiver.c 2005-04-23 17:52:45 UTC (rev 1787)
+++ trunk/drbd/drbd_receiver.c 2005-04-26 19:43:54 UTC (rev 1788)
@@ -1290,7 +1290,7 @@
if (self == peer) return -1;
for ( i=History_start ; i<=History_end ; i++ ) {
- peer = mdev->p_uuid[i];
+ peer = mdev->p_uuid[i] & ~((u64)1);
if (self == peer) return -2;
}
More information about the drbd-cvs
mailing list