summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_main.c
diff options
context:
space:
mode:
authorPhilipp Reisner2011-07-15 12:14:27 +0200
committerPhilipp Reisner2012-05-09 15:10:50 +0200
commitbca482e90bf87569ffb87cba2c3a777ac23e5c86 (patch)
tree1361d848be0bd4374c90e76323325dc97de72bc3 /drivers/block/drbd/drbd_main.c
parentdrbd: change some GFP_KERNEL to GFP_NOIO (diff)
downloadkernel-qcow2-linux-bca482e90bf87569ffb87cba2c3a777ac23e5c86.tar.gz
kernel-qcow2-linux-bca482e90bf87569ffb87cba2c3a777ac23e5c86.tar.xz
kernel-qcow2-linux-bca482e90bf87569ffb87cba2c3a777ac23e5c86.zip
drbd: Fixed current UUID generation
Now, the new edition of the clause only fires if a diskless peer gets promoted. This is a fixup for "drbd: Delayed creation of current-UUID". Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_main.c')
-rw-r--r--drivers/block/drbd/drbd_main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 4bd636524dd1..b62e3559b50c 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -1494,11 +1494,11 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os,
}
if (ns.pdsk < D_INCONSISTENT && get_ldev(mdev)) {
- if (ns.peer == R_PRIMARY && mdev->ldev->md.uuid[UI_BITMAP] == 0) {
+ if (os.peer == R_SECONDARY && ns.peer == R_PRIMARY &&
+ mdev->ldev->md.uuid[UI_BITMAP] == 0 && ns.disk >= D_UP_TO_DATE) {
drbd_uuid_new_current(mdev);
drbd_send_uuids(mdev);
}
-
/* D_DISKLESS Peer becomes secondary */
if (os.peer == R_PRIMARY && ns.peer == R_SECONDARY)
/* We may still be Primary ourselves.