Skip to content

Commit

Permalink
target/iscsi: convert to idr_alloc()
Browse files Browse the repository at this point in the history
Convert to the much saner new idr interface.

Signed-off-by: Tejun Heo <[email protected]>
Cc: Nicholas A. Bellinger <[email protected]>
Cc: James Bottomley <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
htejun authored and torvalds committed Feb 28, 2013
1 parent b98c52b commit c9365bd
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 16 deletions.
15 changes: 8 additions & 7 deletions drivers/target/iscsi/iscsi_target.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,23 +144,24 @@ struct iscsi_tiqn *iscsit_add_tiqn(unsigned char *buf)
spin_lock_init(&tiqn->login_stats.lock);
spin_lock_init(&tiqn->logout_stats.lock);

if (!idr_pre_get(&tiqn_idr, GFP_KERNEL)) {
pr_err("idr_pre_get() for tiqn_idr failed\n");
kfree(tiqn);
return ERR_PTR(-ENOMEM);
}
tiqn->tiqn_state = TIQN_STATE_ACTIVE;

idr_preload(GFP_KERNEL);
spin_lock(&tiqn_lock);
ret = idr_get_new(&tiqn_idr, NULL, &tiqn->tiqn_index);

ret = idr_alloc(&tiqn_idr, NULL, 0, 0, GFP_NOWAIT);
if (ret < 0) {
pr_err("idr_get_new() failed for tiqn->tiqn_index\n");
pr_err("idr_alloc() failed for tiqn->tiqn_index\n");
spin_unlock(&tiqn_lock);
idr_preload_end();
kfree(tiqn);
return ERR_PTR(ret);
}
tiqn->tiqn_index = ret;
list_add_tail(&tiqn->tiqn_list, &g_tiqn_list);

spin_unlock(&tiqn_lock);
idr_preload_end();

pr_debug("CORE[0] - Added iSCSI Target IQN: %s\n", tiqn->tiqn);

Expand Down
15 changes: 6 additions & 9 deletions drivers/target/iscsi/iscsi_target_login.c
Original file line number Diff line number Diff line change
Expand Up @@ -247,19 +247,16 @@ static int iscsi_login_zero_tsih_s1(
spin_lock_init(&sess->session_usage_lock);
spin_lock_init(&sess->ttt_lock);

if (!idr_pre_get(&sess_idr, GFP_KERNEL)) {
pr_err("idr_pre_get() for sess_idr failed\n");
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
ISCSI_LOGIN_STATUS_NO_RESOURCES);
kfree(sess);
return -ENOMEM;
}
idr_preload(GFP_KERNEL);
spin_lock_bh(&sess_idr_lock);
ret = idr_get_new(&sess_idr, NULL, &sess->session_index);
ret = idr_alloc(&sess_idr, NULL, 0, 0, GFP_NOWAIT);
if (ret >= 0)
sess->session_index = ret;
spin_unlock_bh(&sess_idr_lock);
idr_preload_end();

if (ret < 0) {
pr_err("idr_get_new() for sess_idr failed\n");
pr_err("idr_alloc() for sess_idr failed\n");
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
ISCSI_LOGIN_STATUS_NO_RESOURCES);
kfree(sess);
Expand Down

0 comments on commit c9365bd

Please sign in to comment.