aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorAlex Elder <elder@inktank.com>2012-08-29 18:11:06 -0400
committerAlex Elder <elder@inktank.com>2012-10-01 15:30:50 -0400
commite28393082dd3991156d12a9e64b9584cef28fe25 (patch)
treebfce8bf9aab02a06fdf1ed358194db56297d5e0e /drivers/block
parentaafb230ebc3bcdbbd1781f56e482ec75f7f1f263 (diff)
rbd: rename rbd_id_get()
This should have been done as part of this commit: commit de71a2970d57463d3d965025e33ec3adcf391248 Author: Alex Elder <elder@inktank.com> Date: Tue Jul 3 16:01:19 2012 -0500 rbd: rename rbd_device->id rbd_id_get() is assigning the rbd_dev->dev_id field. Change the name of that function as well as rbd_id_put() and rbd_id_max to reflect what they are affecting. Add some dynamic debug statements related to rbd device id activity. Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/rbd.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index d84b5341bea2..8cb8e0abfb33 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -2304,26 +2304,28 @@ static int rbd_init_watch_dev(struct rbd_device *rbd_dev)
2304 return ret; 2304 return ret;
2305} 2305}
2306 2306
2307static atomic64_t rbd_id_max = ATOMIC64_INIT(0); 2307static atomic64_t rbd_dev_id_max = ATOMIC64_INIT(0);
2308 2308
2309/* 2309/*
2310 * Get a unique rbd identifier for the given new rbd_dev, and add 2310 * Get a unique rbd identifier for the given new rbd_dev, and add
2311 * the rbd_dev to the global list. The minimum rbd id is 1. 2311 * the rbd_dev to the global list. The minimum rbd id is 1.
2312 */ 2312 */
2313static void rbd_id_get(struct rbd_device *rbd_dev) 2313static void rbd_dev_id_get(struct rbd_device *rbd_dev)
2314{ 2314{
2315 rbd_dev->dev_id = atomic64_inc_return(&rbd_id_max); 2315 rbd_dev->dev_id = atomic64_inc_return(&rbd_dev_id_max);
2316 2316
2317 spin_lock(&rbd_dev_list_lock); 2317 spin_lock(&rbd_dev_list_lock);
2318 list_add_tail(&rbd_dev->node, &rbd_dev_list); 2318 list_add_tail(&rbd_dev->node, &rbd_dev_list);
2319 spin_unlock(&rbd_dev_list_lock); 2319 spin_unlock(&rbd_dev_list_lock);
2320 dout("rbd_dev %p given dev id %llu\n", rbd_dev,
2321 (unsigned long long) rbd_dev->dev_id);
2320} 2322}
2321 2323
2322/* 2324/*
2323 * Remove an rbd_dev from the global list, and record that its 2325 * Remove an rbd_dev from the global list, and record that its
2324 * identifier is no longer in use. 2326 * identifier is no longer in use.
2325 */ 2327 */
2326static void rbd_id_put(struct rbd_device *rbd_dev) 2328static void rbd_dev_id_put(struct rbd_device *rbd_dev)
2327{ 2329{
2328 struct list_head *tmp; 2330 struct list_head *tmp;
2329 int rbd_id = rbd_dev->dev_id; 2331 int rbd_id = rbd_dev->dev_id;
@@ -2331,6 +2333,8 @@ static void rbd_id_put(struct rbd_device *rbd_dev)
2331 2333
2332 rbd_assert(rbd_id > 0); 2334 rbd_assert(rbd_id > 0);
2333 2335
2336 dout("rbd_dev %p released dev id %llu\n", rbd_dev,
2337 (unsigned long long) rbd_dev->dev_id);
2334 spin_lock(&rbd_dev_list_lock); 2338 spin_lock(&rbd_dev_list_lock);
2335 list_del_init(&rbd_dev->node); 2339 list_del_init(&rbd_dev->node);
2336 2340
@@ -2338,7 +2342,7 @@ static void rbd_id_put(struct rbd_device *rbd_dev)
2338 * If the id being "put" is not the current maximum, there 2342 * If the id being "put" is not the current maximum, there
2339 * is nothing special we need to do. 2343 * is nothing special we need to do.
2340 */ 2344 */
2341 if (rbd_id != atomic64_read(&rbd_id_max)) { 2345 if (rbd_id != atomic64_read(&rbd_dev_id_max)) {
2342 spin_unlock(&rbd_dev_list_lock); 2346 spin_unlock(&rbd_dev_list_lock);
2343 return; 2347 return;
2344 } 2348 }
@@ -2359,12 +2363,13 @@ static void rbd_id_put(struct rbd_device *rbd_dev)
2359 spin_unlock(&rbd_dev_list_lock); 2363 spin_unlock(&rbd_dev_list_lock);
2360 2364
2361 /* 2365 /*
2362 * The max id could have been updated by rbd_id_get(), in 2366 * The max id could have been updated by rbd_dev_id_get(), in
2363 * which case it now accurately reflects the new maximum. 2367 * which case it now accurately reflects the new maximum.
2364 * Be careful not to overwrite the maximum value in that 2368 * Be careful not to overwrite the maximum value in that
2365 * case. 2369 * case.
2366 */ 2370 */
2367 atomic64_cmpxchg(&rbd_id_max, rbd_id, max_id); 2371 atomic64_cmpxchg(&rbd_dev_id_max, rbd_id, max_id);
2372 dout(" max dev id has been reset\n");
2368} 2373}
2369 2374
2370/* 2375/*
@@ -2563,7 +2568,7 @@ static ssize_t rbd_add(struct bus_type *bus,
2563 init_rwsem(&rbd_dev->header_rwsem); 2568 init_rwsem(&rbd_dev->header_rwsem);
2564 2569
2565 /* generate unique id: find highest unique id, add one */ 2570 /* generate unique id: find highest unique id, add one */
2566 rbd_id_get(rbd_dev); 2571 rbd_dev_id_get(rbd_dev);
2567 2572
2568 /* Fill in the device name, now that we have its id. */ 2573 /* Fill in the device name, now that we have its id. */
2569 BUILD_BUG_ON(DEV_NAME_LEN 2574 BUILD_BUG_ON(DEV_NAME_LEN
@@ -2631,7 +2636,7 @@ err_put_id:
2631 kfree(rbd_dev->image_name); 2636 kfree(rbd_dev->image_name);
2632 kfree(rbd_dev->pool_name); 2637 kfree(rbd_dev->pool_name);
2633 } 2638 }
2634 rbd_id_put(rbd_dev); 2639 rbd_dev_id_put(rbd_dev);
2635err_nomem: 2640err_nomem:
2636 kfree(rbd_dev); 2641 kfree(rbd_dev);
2637 kfree(options); 2642 kfree(options);
@@ -2683,7 +2688,7 @@ static void rbd_dev_release(struct device *dev)
2683 kfree(rbd_dev->header_name); 2688 kfree(rbd_dev->header_name);
2684 kfree(rbd_dev->pool_name); 2689 kfree(rbd_dev->pool_name);
2685 kfree(rbd_dev->image_name); 2690 kfree(rbd_dev->image_name);
2686 rbd_id_put(rbd_dev); 2691 rbd_dev_id_put(rbd_dev);
2687 kfree(rbd_dev); 2692 kfree(rbd_dev);
2688 2693
2689 /* release module ref */ 2694 /* release module ref */