diff options
Diffstat (limited to 'drivers/block/drbd/drbd_receiver.c')
-rw-r--r-- | drivers/block/drbd/drbd_receiver.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index a04ec01ab3ce..461d9872d4d3 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c | |||
@@ -1150,6 +1150,17 @@ int drbd_submit_ee(struct drbd_conf *mdev, struct drbd_epoch_entry *e, | |||
1150 | unsigned n_bios = 0; | 1150 | unsigned n_bios = 0; |
1151 | unsigned nr_pages = (ds + PAGE_SIZE -1) >> PAGE_SHIFT; | 1151 | unsigned nr_pages = (ds + PAGE_SIZE -1) >> PAGE_SHIFT; |
1152 | 1152 | ||
1153 | if (atomic_read(&mdev->new_c_uuid)) { | ||
1154 | if (atomic_add_unless(&mdev->new_c_uuid, -1, 1)) { | ||
1155 | drbd_uuid_new_current(mdev); | ||
1156 | drbd_md_sync(mdev); | ||
1157 | |||
1158 | atomic_dec(&mdev->new_c_uuid); | ||
1159 | wake_up(&mdev->misc_wait); | ||
1160 | } | ||
1161 | wait_event(mdev->misc_wait, !atomic_read(&mdev->new_c_uuid)); | ||
1162 | } | ||
1163 | |||
1153 | /* In most cases, we will only need one bio. But in case the lower | 1164 | /* In most cases, we will only need one bio. But in case the lower |
1154 | * level restrictions happen to be different at this offset on this | 1165 | * level restrictions happen to be different at this offset on this |
1155 | * side than those of the sending peer, we may need to submit the | 1166 | * side than those of the sending peer, we may need to submit the |