diff options
-rw-r--r-- | drivers/block/drbd/Kconfig | 2 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_main.c | 1 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_nl.c | 2 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_receiver.c | 9 |
4 files changed, 8 insertions, 6 deletions
diff --git a/drivers/block/drbd/Kconfig b/drivers/block/drbd/Kconfig index f4acd04ebee..df098378739 100644 --- a/drivers/block/drbd/Kconfig +++ b/drivers/block/drbd/Kconfig | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | comment "DRBD disabled because PROC_FS, INET or CONNECTOR not selected" | 5 | comment "DRBD disabled because PROC_FS, INET or CONNECTOR not selected" |
6 | depends on !PROC_FS || !INET || !CONNECTOR | 6 | depends on PROC_FS='n' || INET='n' || CONNECTOR='n' |
7 | 7 | ||
8 | config BLK_DEV_DRBD | 8 | config BLK_DEV_DRBD |
9 | tristate "DRBD Distributed Replicated Block Device support" | 9 | tristate "DRBD Distributed Replicated Block Device support" |
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 9348f33f624..e898ad9eb1c 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c | |||
@@ -1298,6 +1298,7 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os, | |||
1298 | dev_err(DEV, "Sending state in drbd_io_error() failed\n"); | 1298 | dev_err(DEV, "Sending state in drbd_io_error() failed\n"); |
1299 | } | 1299 | } |
1300 | 1300 | ||
1301 | wait_event(mdev->misc_wait, !atomic_read(&mdev->local_cnt)); | ||
1301 | lc_destroy(mdev->resync); | 1302 | lc_destroy(mdev->resync); |
1302 | mdev->resync = NULL; | 1303 | mdev->resync = NULL; |
1303 | lc_destroy(mdev->act_log); | 1304 | lc_destroy(mdev->act_log); |
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c index 4e0726aa53b..3313901a486 100644 --- a/drivers/block/drbd/drbd_nl.c +++ b/drivers/block/drbd/drbd_nl.c | |||
@@ -1271,7 +1271,7 @@ static int drbd_nl_net_conf(struct drbd_conf *mdev, struct drbd_nl_cfg_req *nlp, | |||
1271 | goto fail; | 1271 | goto fail; |
1272 | } | 1272 | } |
1273 | 1273 | ||
1274 | if (crypto_tfm_alg_type(crypto_hash_tfm(tfm)) != CRYPTO_ALG_TYPE_SHASH) { | 1274 | if (!drbd_crypto_is_hash(crypto_hash_tfm(tfm))) { |
1275 | retcode = ERR_AUTH_ALG_ND; | 1275 | retcode = ERR_AUTH_ALG_ND; |
1276 | goto fail; | 1276 | goto fail; |
1277 | } | 1277 | } |
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index 259c1351b15..a6d266ee7e2 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c | |||
@@ -1201,10 +1201,11 @@ static int receive_Barrier(struct drbd_conf *mdev, struct p_header *h) | |||
1201 | 1201 | ||
1202 | case WO_bdev_flush: | 1202 | case WO_bdev_flush: |
1203 | case WO_drain_io: | 1203 | case WO_drain_io: |
1204 | D_ASSERT(rv == FE_STILL_LIVE); | 1204 | if (rv == FE_STILL_LIVE) { |
1205 | set_bit(DE_BARRIER_IN_NEXT_EPOCH_ISSUED, &mdev->current_epoch->flags); | 1205 | set_bit(DE_BARRIER_IN_NEXT_EPOCH_ISSUED, &mdev->current_epoch->flags); |
1206 | drbd_wait_ee_list_empty(mdev, &mdev->active_ee); | 1206 | drbd_wait_ee_list_empty(mdev, &mdev->active_ee); |
1207 | rv = drbd_flush_after_epoch(mdev, mdev->current_epoch); | 1207 | rv = drbd_flush_after_epoch(mdev, mdev->current_epoch); |
1208 | } | ||
1208 | if (rv == FE_RECYCLED) | 1209 | if (rv == FE_RECYCLED) |
1209 | return TRUE; | 1210 | return TRUE; |
1210 | 1211 | ||