diff options
-rw-r--r-- | drivers/block/drbd/drbd_int.h | 1 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_main.c | 35 |
2 files changed, 12 insertions, 24 deletions
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h index 30801922a971..0fb3fc32a993 100644 --- a/drivers/block/drbd/drbd_int.h +++ b/drivers/block/drbd/drbd_int.h | |||
@@ -1046,7 +1046,6 @@ extern void drbd_calc_cpu_mask(struct drbd_tconn *tconn); | |||
1046 | #define drbd_thread_current_set_cpu(A) ({}) | 1046 | #define drbd_thread_current_set_cpu(A) ({}) |
1047 | #define drbd_calc_cpu_mask(A) ({}) | 1047 | #define drbd_calc_cpu_mask(A) ({}) |
1048 | #endif | 1048 | #endif |
1049 | extern void drbd_free_resources(struct drbd_conf *mdev); | ||
1050 | extern void tl_release(struct drbd_tconn *, unsigned int barrier_nr, | 1049 | extern void tl_release(struct drbd_tconn *, unsigned int barrier_nr, |
1051 | unsigned int set_size); | 1050 | unsigned int set_size); |
1052 | extern void tl_clear(struct drbd_tconn *); | 1051 | extern void tl_clear(struct drbd_tconn *); |
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index bfea92297f6a..b9c103f16ae7 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c | |||
@@ -2057,7 +2057,9 @@ void drbd_mdev_cleanup(struct drbd_conf *mdev) | |||
2057 | drbd_bm_cleanup(mdev); | 2057 | drbd_bm_cleanup(mdev); |
2058 | } | 2058 | } |
2059 | 2059 | ||
2060 | drbd_free_resources(mdev); | 2060 | drbd_free_bc(mdev->ldev); |
2061 | mdev->ldev = NULL; | ||
2062 | |||
2061 | clear_bit(AL_SUSPENDED, &mdev->flags); | 2063 | clear_bit(AL_SUSPENDED, &mdev->flags); |
2062 | 2064 | ||
2063 | D_ASSERT(list_empty(&mdev->active_ee)); | 2065 | D_ASSERT(list_empty(&mdev->active_ee)); |
@@ -2252,7 +2254,8 @@ void drbd_delete_device(struct drbd_conf *mdev) | |||
2252 | if (mdev->this_bdev) | 2254 | if (mdev->this_bdev) |
2253 | bdput(mdev->this_bdev); | 2255 | bdput(mdev->this_bdev); |
2254 | 2256 | ||
2255 | drbd_free_resources(mdev); | 2257 | drbd_free_bc(mdev->ldev); |
2258 | mdev->ldev = NULL; | ||
2256 | 2259 | ||
2257 | drbd_release_all_peer_reqs(mdev); | 2260 | drbd_release_all_peer_reqs(mdev); |
2258 | 2261 | ||
@@ -2387,11 +2390,18 @@ static void drbd_free_socket(struct drbd_socket *socket) | |||
2387 | 2390 | ||
2388 | void conn_free_crypto(struct drbd_tconn *tconn) | 2391 | void conn_free_crypto(struct drbd_tconn *tconn) |
2389 | { | 2392 | { |
2393 | drbd_free_sock(tconn); | ||
2394 | |||
2395 | crypto_free_hash(tconn->csums_tfm); | ||
2396 | crypto_free_hash(tconn->verify_tfm); | ||
2390 | crypto_free_hash(tconn->cram_hmac_tfm); | 2397 | crypto_free_hash(tconn->cram_hmac_tfm); |
2391 | crypto_free_hash(tconn->integrity_w_tfm); | 2398 | crypto_free_hash(tconn->integrity_w_tfm); |
2392 | crypto_free_hash(tconn->integrity_r_tfm); | 2399 | crypto_free_hash(tconn->integrity_r_tfm); |
2393 | kfree(tconn->int_dig_in); | 2400 | kfree(tconn->int_dig_in); |
2394 | kfree(tconn->int_dig_vv); | 2401 | kfree(tconn->int_dig_vv); |
2402 | |||
2403 | tconn->csums_tfm = NULL; | ||
2404 | tconn->verify_tfm = NULL; | ||
2395 | tconn->cram_hmac_tfm = NULL; | 2405 | tconn->cram_hmac_tfm = NULL; |
2396 | tconn->integrity_w_tfm = NULL; | 2406 | tconn->integrity_w_tfm = NULL; |
2397 | tconn->integrity_r_tfm = NULL; | 2407 | tconn->integrity_r_tfm = NULL; |
@@ -2700,27 +2710,6 @@ void drbd_free_sock(struct drbd_tconn *tconn) | |||
2700 | } | 2710 | } |
2701 | } | 2711 | } |
2702 | 2712 | ||
2703 | |||
2704 | void drbd_free_resources(struct drbd_conf *mdev) | ||
2705 | { | ||
2706 | crypto_free_hash(mdev->tconn->csums_tfm); | ||
2707 | mdev->tconn->csums_tfm = NULL; | ||
2708 | crypto_free_hash(mdev->tconn->verify_tfm); | ||
2709 | mdev->tconn->verify_tfm = NULL; | ||
2710 | crypto_free_hash(mdev->tconn->cram_hmac_tfm); | ||
2711 | mdev->tconn->cram_hmac_tfm = NULL; | ||
2712 | crypto_free_hash(mdev->tconn->integrity_w_tfm); | ||
2713 | mdev->tconn->integrity_w_tfm = NULL; | ||
2714 | crypto_free_hash(mdev->tconn->integrity_r_tfm); | ||
2715 | mdev->tconn->integrity_r_tfm = NULL; | ||
2716 | |||
2717 | drbd_free_sock(mdev->tconn); | ||
2718 | |||
2719 | __no_warn(local, | ||
2720 | drbd_free_bc(mdev->ldev); | ||
2721 | mdev->ldev = NULL;); | ||
2722 | } | ||
2723 | |||
2724 | /* meta data management */ | 2713 | /* meta data management */ |
2725 | 2714 | ||
2726 | struct meta_data_on_disk { | 2715 | struct meta_data_on_disk { |