aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruen@linbit.com>2013-05-23 08:57:17 -0400
committerPhilipp Reisner <philipp.reisner@linbit.com>2014-02-17 10:44:56 -0500
commit93e4bf7a776e861b63f4fa3e5245487c1e813e56 (patch)
tree39b1cc40e038a254a847ee5d86c3caebbf5b98bf
parentd8628a86576b278575750180fc5fab652a8224ca (diff)
drbd: Minor cleanup in conn_new_minor()
Signed-off-by: Andreas Gruenbacher <agruen@linbit.com> Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
-rw-r--r--drivers/block/drbd/drbd_main.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index bf559adc21be..7d06d2154fa3 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -2662,8 +2662,7 @@ enum drbd_ret_code drbd_create_minor(struct drbd_connection *connection, unsigne
2662 struct drbd_peer_device *peer_device; 2662 struct drbd_peer_device *peer_device;
2663 struct gendisk *disk; 2663 struct gendisk *disk;
2664 struct request_queue *q; 2664 struct request_queue *q;
2665 int vnr_got = vnr; 2665 int id;
2666 int minor_got = minor;
2667 enum drbd_ret_code err = ERR_NOMEM; 2666 enum drbd_ret_code err = ERR_NOMEM;
2668 2667
2669 device = minor_to_device(minor); 2668 device = minor_to_device(minor);
@@ -2735,18 +2734,18 @@ enum drbd_ret_code drbd_create_minor(struct drbd_connection *connection, unsigne
2735 device->read_requests = RB_ROOT; 2734 device->read_requests = RB_ROOT;
2736 device->write_requests = RB_ROOT; 2735 device->write_requests = RB_ROOT;
2737 2736
2738 minor_got = idr_alloc(&drbd_devices, device, minor, minor + 1, GFP_KERNEL); 2737 id = idr_alloc(&drbd_devices, device, minor, minor + 1, GFP_KERNEL);
2739 if (minor_got < 0) { 2738 if (id < 0) {
2740 if (minor_got == -ENOSPC) { 2739 if (id == -ENOSPC) {
2741 err = ERR_MINOR_EXISTS; 2740 err = ERR_MINOR_EXISTS;
2742 drbd_msg_put_info("requested minor exists already"); 2741 drbd_msg_put_info("requested minor exists already");
2743 } 2742 }
2744 goto out_no_minor_idr; 2743 goto out_no_minor_idr;
2745 } 2744 }
2746 2745
2747 vnr_got = idr_alloc(&connection->volumes, device, vnr, vnr + 1, GFP_KERNEL); 2746 id = idr_alloc(&connection->volumes, device, vnr, vnr + 1, GFP_KERNEL);
2748 if (vnr_got < 0) { 2747 if (id < 0) {
2749 if (vnr_got == -ENOSPC) { 2748 if (id == -ENOSPC) {
2750 err = ERR_INVALID_REQUEST; 2749 err = ERR_INVALID_REQUEST;
2751 drbd_msg_put_info("requested volume exists already"); 2750 drbd_msg_put_info("requested volume exists already");
2752 } 2751 }
@@ -2770,9 +2769,9 @@ enum drbd_ret_code drbd_create_minor(struct drbd_connection *connection, unsigne
2770 return NO_ERROR; 2769 return NO_ERROR;
2771 2770
2772out_idr_remove_vol: 2771out_idr_remove_vol:
2773 idr_remove(&connection->volumes, vnr_got); 2772 idr_remove(&connection->volumes, vnr);
2774out_idr_remove_minor: 2773out_idr_remove_minor:
2775 idr_remove(&drbd_devices, minor_got); 2774 idr_remove(&drbd_devices, minor);
2776 synchronize_rcu(); 2775 synchronize_rcu();
2777out_no_minor_idr: 2776out_no_minor_idr:
2778 drbd_bm_cleanup(device); 2777 drbd_bm_cleanup(device);