aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2010-10-15 07:16:53 -0400
committerPhilipp Reisner <philipp.reisner@linbit.com>2010-10-22 09:36:56 -0400
commitaaa8e2b34c35d67abf1892cd62ea4e7565ca262c (patch)
tree19e0cb68b9481dbfa89b26b58d33071f7f2db9bf /drivers/block
parent6362beea8914cbd4630ccde3617d944aeca2d48f (diff)
drbd: consolidate explicit drbd_md_sync into drbd_create_new_uuid
Every code path changing the current UUID needs to get it on stable storage anyways. Flush it to disk right there, remove the now obsolte explicit drbd_md_sync statements in the other code paths. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/drbd/drbd_main.c3
-rw-r--r--drivers/block/drbd/drbd_nl.c1
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 8bfedc7164fa..8d029b14e7cc 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -1267,7 +1267,6 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os,
1267 if (test_bit(NEW_CUR_UUID, &mdev->flags)) { 1267 if (test_bit(NEW_CUR_UUID, &mdev->flags)) {
1268 drbd_uuid_new_current(mdev); 1268 drbd_uuid_new_current(mdev);
1269 clear_bit(NEW_CUR_UUID, &mdev->flags); 1269 clear_bit(NEW_CUR_UUID, &mdev->flags);
1270 drbd_md_sync(mdev);
1271 } 1270 }
1272 spin_lock_irq(&mdev->req_lock); 1271 spin_lock_irq(&mdev->req_lock);
1273 _drbd_set_state(_NS(mdev, susp_fen, 0), CS_VERBOSE, NULL); 1272 _drbd_set_state(_NS(mdev, susp_fen, 0), CS_VERBOSE, NULL);
@@ -3659,6 +3658,8 @@ void drbd_uuid_new_current(struct drbd_conf *mdev) __must_hold(local)
3659 3658
3660 get_random_bytes(&val, sizeof(u64)); 3659 get_random_bytes(&val, sizeof(u64));
3661 _drbd_uuid_set(mdev, UI_CURRENT, val); 3660 _drbd_uuid_set(mdev, UI_CURRENT, val);
3661 /* get it to stable storage _now_ */
3662 drbd_md_sync(mdev);
3662} 3663}
3663 3664
3664void drbd_uuid_set_bm(struct drbd_conf *mdev, u64 val) __must_hold(local) 3665void drbd_uuid_set_bm(struct drbd_conf *mdev, u64 val) __must_hold(local)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 87925e97e613..c498c4827de4 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -1953,7 +1953,6 @@ static int drbd_nl_resume_io(struct drbd_conf *mdev, struct drbd_nl_cfg_req *nlp
1953 if (test_bit(NEW_CUR_UUID, &mdev->flags)) { 1953 if (test_bit(NEW_CUR_UUID, &mdev->flags)) {
1954 drbd_uuid_new_current(mdev); 1954 drbd_uuid_new_current(mdev);
1955 clear_bit(NEW_CUR_UUID, &mdev->flags); 1955 clear_bit(NEW_CUR_UUID, &mdev->flags);
1956 drbd_md_sync(mdev);
1957 } 1956 }
1958 drbd_suspend_io(mdev); 1957 drbd_suspend_io(mdev);
1959 reply->ret_code = drbd_request_state(mdev, NS3(susp, 0, susp_nod, 0, susp_fen, 0)); 1958 reply->ret_code = drbd_request_state(mdev, NS3(susp, 0, susp_nod, 0, susp_fen, 0));