Skip to content

Commit 676687c

Browse files
author
Nicholas Bellinger
committed
iscsi-target: Convert gfp_t parameter to task state bitmask
This patch propigates the use of task state bitmask now used by percpu_ida_alloc() up the iscsi-target callchain, replacing the use of GFP_ATOMIC for TASK_RUNNING, and GFP_KERNEL for TASK_INTERRUPTIBLE. Also, drop the unnecessary gfp_t parameter to isert_allocate_cmd(), and just pass TASK_INTERRUPTIBLE into iscsit_allocate_cmd(). Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
1 parent 555b270 commit 676687c

File tree

5 files changed

+19
-20
lines changed

5 files changed

+19
-20
lines changed

drivers/infiniband/ulp/isert/ib_isert.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,13 +1028,13 @@ isert_rx_login_req(struct iser_rx_desc *rx_desc, int rx_buflen,
10281028
}
10291029

10301030
static struct iscsi_cmd
1031-
*isert_allocate_cmd(struct iscsi_conn *conn, gfp_t gfp)
1031+
*isert_allocate_cmd(struct iscsi_conn *conn)
10321032
{
10331033
struct isert_conn *isert_conn = (struct isert_conn *)conn->context;
10341034
struct isert_cmd *isert_cmd;
10351035
struct iscsi_cmd *cmd;
10361036

1037-
cmd = iscsit_allocate_cmd(conn, gfp);
1037+
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
10381038
if (!cmd) {
10391039
pr_err("Unable to allocate iscsi_cmd + isert_cmd\n");
10401040
return NULL;
@@ -1223,7 +1223,7 @@ isert_rx_opcode(struct isert_conn *isert_conn, struct iser_rx_desc *rx_desc,
12231223

12241224
switch (opcode) {
12251225
case ISCSI_OP_SCSI_CMD:
1226-
cmd = isert_allocate_cmd(conn, GFP_KERNEL);
1226+
cmd = isert_allocate_cmd(conn);
12271227
if (!cmd)
12281228
break;
12291229

@@ -1237,7 +1237,7 @@ isert_rx_opcode(struct isert_conn *isert_conn, struct iser_rx_desc *rx_desc,
12371237
rx_desc, (unsigned char *)hdr);
12381238
break;
12391239
case ISCSI_OP_NOOP_OUT:
1240-
cmd = isert_allocate_cmd(conn, GFP_KERNEL);
1240+
cmd = isert_allocate_cmd(conn);
12411241
if (!cmd)
12421242
break;
12431243

@@ -1250,15 +1250,15 @@ isert_rx_opcode(struct isert_conn *isert_conn, struct iser_rx_desc *rx_desc,
12501250
(unsigned char *)hdr);
12511251
break;
12521252
case ISCSI_OP_SCSI_TMFUNC:
1253-
cmd = isert_allocate_cmd(conn, GFP_KERNEL);
1253+
cmd = isert_allocate_cmd(conn);
12541254
if (!cmd)
12551255
break;
12561256

12571257
ret = iscsit_handle_task_mgt_cmd(conn, cmd,
12581258
(unsigned char *)hdr);
12591259
break;
12601260
case ISCSI_OP_LOGOUT:
1261-
cmd = isert_allocate_cmd(conn, GFP_KERNEL);
1261+
cmd = isert_allocate_cmd(conn);
12621262
if (!cmd)
12631263
break;
12641264

@@ -1269,7 +1269,7 @@ isert_rx_opcode(struct isert_conn *isert_conn, struct iser_rx_desc *rx_desc,
12691269
HZ);
12701270
break;
12711271
case ISCSI_OP_TEXT:
1272-
cmd = isert_allocate_cmd(conn, GFP_KERNEL);
1272+
cmd = isert_allocate_cmd(conn);
12731273
if (!cmd)
12741274
break;
12751275

drivers/target/iscsi/iscsi_target.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ static int iscsit_add_reject(
621621
{
622622
struct iscsi_cmd *cmd;
623623

624-
cmd = iscsit_allocate_cmd(conn, GFP_KERNEL);
624+
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
625625
if (!cmd)
626626
return -1;
627627

@@ -2476,7 +2476,7 @@ static void iscsit_build_conn_drop_async_message(struct iscsi_conn *conn)
24762476
if (!conn_p)
24772477
return;
24782478

2479-
cmd = iscsit_allocate_cmd(conn_p, GFP_ATOMIC);
2479+
cmd = iscsit_allocate_cmd(conn_p, TASK_RUNNING);
24802480
if (!cmd) {
24812481
iscsit_dec_conn_usage_count(conn_p);
24822482
return;
@@ -3952,7 +3952,7 @@ static int iscsi_target_rx_opcode(struct iscsi_conn *conn, unsigned char *buf)
39523952

39533953
switch (hdr->opcode & ISCSI_OPCODE_MASK) {
39543954
case ISCSI_OP_SCSI_CMD:
3955-
cmd = iscsit_allocate_cmd(conn, GFP_KERNEL);
3955+
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
39563956
if (!cmd)
39573957
goto reject;
39583958

@@ -3964,28 +3964,28 @@ static int iscsi_target_rx_opcode(struct iscsi_conn *conn, unsigned char *buf)
39643964
case ISCSI_OP_NOOP_OUT:
39653965
cmd = NULL;
39663966
if (hdr->ttt == cpu_to_be32(0xFFFFFFFF)) {
3967-
cmd = iscsit_allocate_cmd(conn, GFP_KERNEL);
3967+
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
39683968
if (!cmd)
39693969
goto reject;
39703970
}
39713971
ret = iscsit_handle_nop_out(conn, cmd, buf);
39723972
break;
39733973
case ISCSI_OP_SCSI_TMFUNC:
3974-
cmd = iscsit_allocate_cmd(conn, GFP_KERNEL);
3974+
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
39753975
if (!cmd)
39763976
goto reject;
39773977

39783978
ret = iscsit_handle_task_mgt_cmd(conn, cmd, buf);
39793979
break;
39803980
case ISCSI_OP_TEXT:
3981-
cmd = iscsit_allocate_cmd(conn, GFP_KERNEL);
3981+
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
39823982
if (!cmd)
39833983
goto reject;
39843984

39853985
ret = iscsit_handle_text_cmd(conn, cmd, buf);
39863986
break;
39873987
case ISCSI_OP_LOGOUT:
3988-
cmd = iscsit_allocate_cmd(conn, GFP_KERNEL);
3988+
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
39893989
if (!cmd)
39903990
goto reject;
39913991

drivers/target/iscsi/iscsi_target_util.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,11 @@ void iscsit_free_r2ts_from_list(struct iscsi_cmd *cmd)
152152
* May be called from software interrupt (timer) context for allocating
153153
* iSCSI NopINs.
154154
*/
155-
struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *conn, gfp_t gfp_mask)
155+
struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *conn, int state)
156156
{
157157
struct iscsi_cmd *cmd;
158158
struct se_session *se_sess = conn->sess->se_sess;
159-
int size, tag, state = (gfp_mask & __GFP_WAIT) ? TASK_INTERRUPTIBLE :
160-
TASK_RUNNING;
159+
int size, tag;
161160

162161
tag = percpu_ida_alloc(&se_sess->sess_tag_pool, state);
163162
if (tag < 0)
@@ -930,7 +929,7 @@ static int iscsit_add_nopin(struct iscsi_conn *conn, int want_response)
930929
u8 state;
931930
struct iscsi_cmd *cmd;
932931

933-
cmd = iscsit_allocate_cmd(conn, GFP_ATOMIC);
932+
cmd = iscsit_allocate_cmd(conn, TASK_RUNNING);
934933
if (!cmd)
935934
return -1;
936935

drivers/target/iscsi/iscsi_target_util.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ extern struct iscsi_r2t *iscsit_get_r2t_from_list(struct iscsi_cmd *);
99
extern void iscsit_free_r2t(struct iscsi_r2t *, struct iscsi_cmd *);
1010
extern void iscsit_free_r2ts_from_list(struct iscsi_cmd *);
1111
extern struct iscsi_cmd *iscsit_alloc_cmd(struct iscsi_conn *, gfp_t);
12-
extern struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *, gfp_t);
12+
extern struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *, int);
1313
extern struct iscsi_seq *iscsit_get_seq_holder_for_datain(struct iscsi_cmd *, u32);
1414
extern struct iscsi_seq *iscsit_get_seq_holder_for_r2t(struct iscsi_cmd *);
1515
extern struct iscsi_r2t *iscsit_get_holder_for_r2tsn(struct iscsi_cmd *, u32);

include/target/iscsi/iscsi_transport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ extern int iscsit_tmr_post_handler(struct iscsi_cmd *, struct iscsi_conn *);
9494
/*
9595
* From iscsi_target_util.c
9696
*/
97-
extern struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *, gfp_t);
97+
extern struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *, int);
9898
extern int iscsit_sequence_cmd(struct iscsi_conn *, struct iscsi_cmd *,
9999
unsigned char *, __be32);
100100
extern void iscsit_release_cmd(struct iscsi_cmd *);

0 commit comments

Comments
 (0)