Commit e2839308 authored by Alex Elder's avatar Alex Elder

rbd: rename rbd_id_get()

This should have been done as part of this commit:

    commit de71a297
    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: default avatarAlex Elder <elder@inktank.com>
Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
parent aafb230e
...@@ -2304,26 +2304,28 @@ static int rbd_init_watch_dev(struct rbd_device *rbd_dev) ...@@ -2304,26 +2304,28 @@ static int rbd_init_watch_dev(struct rbd_device *rbd_dev)
return ret; return ret;
} }
static atomic64_t rbd_id_max = ATOMIC64_INIT(0); static atomic64_t rbd_dev_id_max = ATOMIC64_INIT(0);
/* /*
* Get a unique rbd identifier for the given new rbd_dev, and add * Get a unique rbd identifier for the given new rbd_dev, and add
* the rbd_dev to the global list. The minimum rbd id is 1. * the rbd_dev to the global list. The minimum rbd id is 1.
*/ */
static void rbd_id_get(struct rbd_device *rbd_dev) static void rbd_dev_id_get(struct rbd_device *rbd_dev)
{ {
rbd_dev->dev_id = atomic64_inc_return(&rbd_id_max); rbd_dev->dev_id = atomic64_inc_return(&rbd_dev_id_max);
spin_lock(&rbd_dev_list_lock); spin_lock(&rbd_dev_list_lock);
list_add_tail(&rbd_dev->node, &rbd_dev_list); list_add_tail(&rbd_dev->node, &rbd_dev_list);
spin_unlock(&rbd_dev_list_lock); spin_unlock(&rbd_dev_list_lock);
dout("rbd_dev %p given dev id %llu\n", rbd_dev,
(unsigned long long) rbd_dev->dev_id);
} }
/* /*
* Remove an rbd_dev from the global list, and record that its * Remove an rbd_dev from the global list, and record that its
* identifier is no longer in use. * identifier is no longer in use.
*/ */
static void rbd_id_put(struct rbd_device *rbd_dev) static void rbd_dev_id_put(struct rbd_device *rbd_dev)
{ {
struct list_head *tmp; struct list_head *tmp;
int rbd_id = rbd_dev->dev_id; int rbd_id = rbd_dev->dev_id;
...@@ -2331,6 +2333,8 @@ static void rbd_id_put(struct rbd_device *rbd_dev) ...@@ -2331,6 +2333,8 @@ static void rbd_id_put(struct rbd_device *rbd_dev)
rbd_assert(rbd_id > 0); rbd_assert(rbd_id > 0);
dout("rbd_dev %p released dev id %llu\n", rbd_dev,
(unsigned long long) rbd_dev->dev_id);
spin_lock(&rbd_dev_list_lock); spin_lock(&rbd_dev_list_lock);
list_del_init(&rbd_dev->node); list_del_init(&rbd_dev->node);
...@@ -2338,7 +2342,7 @@ static void rbd_id_put(struct rbd_device *rbd_dev) ...@@ -2338,7 +2342,7 @@ static void rbd_id_put(struct rbd_device *rbd_dev)
* If the id being "put" is not the current maximum, there * If the id being "put" is not the current maximum, there
* is nothing special we need to do. * is nothing special we need to do.
*/ */
if (rbd_id != atomic64_read(&rbd_id_max)) { if (rbd_id != atomic64_read(&rbd_dev_id_max)) {
spin_unlock(&rbd_dev_list_lock); spin_unlock(&rbd_dev_list_lock);
return; return;
} }
...@@ -2359,12 +2363,13 @@ static void rbd_id_put(struct rbd_device *rbd_dev) ...@@ -2359,12 +2363,13 @@ static void rbd_id_put(struct rbd_device *rbd_dev)
spin_unlock(&rbd_dev_list_lock); spin_unlock(&rbd_dev_list_lock);
/* /*
* The max id could have been updated by rbd_id_get(), in * The max id could have been updated by rbd_dev_id_get(), in
* which case it now accurately reflects the new maximum. * which case it now accurately reflects the new maximum.
* Be careful not to overwrite the maximum value in that * Be careful not to overwrite the maximum value in that
* case. * case.
*/ */
atomic64_cmpxchg(&rbd_id_max, rbd_id, max_id); atomic64_cmpxchg(&rbd_dev_id_max, rbd_id, max_id);
dout(" max dev id has been reset\n");
} }
/* /*
...@@ -2563,7 +2568,7 @@ static ssize_t rbd_add(struct bus_type *bus, ...@@ -2563,7 +2568,7 @@ static ssize_t rbd_add(struct bus_type *bus,
init_rwsem(&rbd_dev->header_rwsem); init_rwsem(&rbd_dev->header_rwsem);
/* generate unique id: find highest unique id, add one */ /* generate unique id: find highest unique id, add one */
rbd_id_get(rbd_dev); rbd_dev_id_get(rbd_dev);
/* Fill in the device name, now that we have its id. */ /* Fill in the device name, now that we have its id. */
BUILD_BUG_ON(DEV_NAME_LEN BUILD_BUG_ON(DEV_NAME_LEN
...@@ -2631,7 +2636,7 @@ static ssize_t rbd_add(struct bus_type *bus, ...@@ -2631,7 +2636,7 @@ static ssize_t rbd_add(struct bus_type *bus,
kfree(rbd_dev->image_name); kfree(rbd_dev->image_name);
kfree(rbd_dev->pool_name); kfree(rbd_dev->pool_name);
} }
rbd_id_put(rbd_dev); rbd_dev_id_put(rbd_dev);
err_nomem: err_nomem:
kfree(rbd_dev); kfree(rbd_dev);
kfree(options); kfree(options);
...@@ -2683,7 +2688,7 @@ static void rbd_dev_release(struct device *dev) ...@@ -2683,7 +2688,7 @@ static void rbd_dev_release(struct device *dev)
kfree(rbd_dev->header_name); kfree(rbd_dev->header_name);
kfree(rbd_dev->pool_name); kfree(rbd_dev->pool_name);
kfree(rbd_dev->image_name); kfree(rbd_dev->image_name);
rbd_id_put(rbd_dev); rbd_dev_id_put(rbd_dev);
kfree(rbd_dev); kfree(rbd_dev);
/* release module ref */ /* release module ref */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment