Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83c2b54b authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Martin K. Petersen
Browse files

scsi: target: Abstract tag freeing



Introduce target_free_tag() and convert all drivers to use it.

Signed-off-by: default avatarMatthew Wilcox <willy@infradead.org>
Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent ba80917d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3783,7 +3783,7 @@ void qlt_free_cmd(struct qla_tgt_cmd *cmd)
		return;
	}
	cmd->jiffies_at_free = get_jiffies_64();
	percpu_ida_free(&sess->se_sess->sess_tag_pool, cmd->se_cmd.map_tag);
	target_free_tag(sess->se_sess, &cmd->se_cmd);
}
EXPORT_SYMBOL(qlt_free_cmd);

@@ -4146,7 +4146,7 @@ static void __qlt_do_work(struct qla_tgt_cmd *cmd)
	qlt_send_term_exchange(qpair, NULL, &cmd->atio, 1, 0);

	qlt_decr_num_pend_cmds(vha);
	percpu_ida_free(&sess->se_sess->sess_tag_pool, cmd->se_cmd.map_tag);
	target_free_tag(sess->se_sess, &cmd->se_cmd);
	spin_unlock_irqrestore(qpair->qp_lock_ptr, flags);

	spin_lock_irqsave(&ha->tgt.sess_lock, flags);
+1 −1
Original line number Diff line number Diff line
@@ -711,7 +711,7 @@ void iscsit_release_cmd(struct iscsi_cmd *cmd)
	kfree(cmd->iov_data);
	kfree(cmd->text_in_ptr);

	percpu_ida_free(&sess->se_sess->sess_tag_pool, se_cmd->map_tag);
	target_free_tag(sess->se_sess, se_cmd);
}
EXPORT_SYMBOL(iscsit_release_cmd);

+1 −1
Original line number Diff line number Diff line
@@ -1460,7 +1460,7 @@ static void sbp_free_request(struct sbp_target_request *req)
	kfree(req->pg_tbl);
	kfree(req->cmd_buf);

	percpu_ida_free(&se_sess->sess_tag_pool, se_cmd->map_tag);
	target_free_tag(se_sess, se_cmd);
}

static void sbp_mgt_agent_process(struct work_struct *work)
+2 −2
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ static void ft_free_cmd(struct ft_cmd *cmd)
	if (fr_seq(fp))
		fc_seq_release(fr_seq(fp));
	fc_frame_free(fp);
	percpu_ida_free(&sess->se_sess->sess_tag_pool, cmd->se_cmd.map_tag);
	target_free_tag(sess->se_sess, &cmd->se_cmd);
	ft_sess_put(sess);	/* undo get from lookup at recv */
}

@@ -461,7 +461,7 @@ static void ft_recv_cmd(struct ft_sess *sess, struct fc_frame *fp)
	cmd->sess = sess;
	cmd->seq = fc_seq_assign(lport, fp);
	if (!cmd->seq) {
		percpu_ida_free(&se_sess->sess_tag_pool, tag);
		target_free_tag(se_sess, &cmd->se_cmd);
		goto busy;
	}
	cmd->req_frame = fp;		/* hold frame during cmd */
+1 −1
Original line number Diff line number Diff line
@@ -1288,7 +1288,7 @@ static void usbg_release_cmd(struct se_cmd *se_cmd)
	struct se_session *se_sess = se_cmd->se_sess;

	kfree(cmd->data_buf);
	percpu_ida_free(&se_sess->sess_tag_pool, se_cmd->map_tag);
	target_free_tag(se_sess, se_cmd);
}

static u32 usbg_sess_get_index(struct se_session *se_sess)
Loading