Commit 6b207ba3 authored by Tejun Heo's avatar Tejun Heo Committed by Linus Torvalds

ocfs2: convert to idr_alloc()

Convert to the much saner new idr interface.
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Acked-by: default avatarJoel Becker <jlbec@evilplan.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4542da63
...@@ -304,28 +304,22 @@ static u8 o2net_num_from_nn(struct o2net_node *nn) ...@@ -304,28 +304,22 @@ static u8 o2net_num_from_nn(struct o2net_node *nn)
static int o2net_prep_nsw(struct o2net_node *nn, struct o2net_status_wait *nsw) static int o2net_prep_nsw(struct o2net_node *nn, struct o2net_status_wait *nsw)
{ {
int ret = 0; int ret;
do {
if (!idr_pre_get(&nn->nn_status_idr, GFP_ATOMIC)) {
ret = -EAGAIN;
break;
}
spin_lock(&nn->nn_lock); spin_lock(&nn->nn_lock);
ret = idr_get_new(&nn->nn_status_idr, nsw, &nsw->ns_id); ret = idr_alloc(&nn->nn_status_idr, nsw, 0, 0, GFP_ATOMIC);
if (ret == 0) if (ret >= 0) {
list_add_tail(&nsw->ns_node_item, nsw->ns_id = ret;
&nn->nn_status_list); list_add_tail(&nsw->ns_node_item, &nn->nn_status_list);
}
spin_unlock(&nn->nn_lock); spin_unlock(&nn->nn_lock);
} while (ret == -EAGAIN); if (ret < 0)
return ret;
if (ret == 0) {
init_waitqueue_head(&nsw->ns_wq); init_waitqueue_head(&nsw->ns_wq);
nsw->ns_sys_status = O2NET_ERR_NONE; nsw->ns_sys_status = O2NET_ERR_NONE;
nsw->ns_status = 0; nsw->ns_status = 0;
} return 0;
return ret;
} }
static void o2net_complete_nsw_locked(struct o2net_node *nn, static void o2net_complete_nsw_locked(struct o2net_node *nn,
......
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