target: move the dereference below the NULL test
The dereference should be moved below the NULL test. spatch with a semantic match is used to found this. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
Родитель
7875f17908
Коммит
609234e3b6
|
@ -197,10 +197,10 @@ int target_scsi2_reservation_release(struct se_cmd *cmd)
|
||||||
{
|
{
|
||||||
struct se_device *dev = cmd->se_dev;
|
struct se_device *dev = cmd->se_dev;
|
||||||
struct se_session *sess = cmd->se_sess;
|
struct se_session *sess = cmd->se_sess;
|
||||||
struct se_portal_group *tpg = sess->se_tpg;
|
struct se_portal_group *tpg;
|
||||||
int ret = 0, rc;
|
int ret = 0, rc;
|
||||||
|
|
||||||
if (!sess || !tpg)
|
if (!sess || !sess->se_tpg)
|
||||||
goto out;
|
goto out;
|
||||||
rc = target_check_scsi2_reservation_conflict(cmd);
|
rc = target_check_scsi2_reservation_conflict(cmd);
|
||||||
if (rc == 1)
|
if (rc == 1)
|
||||||
|
@ -228,6 +228,7 @@ int target_scsi2_reservation_release(struct se_cmd *cmd)
|
||||||
dev->dev_res_bin_isid = 0;
|
dev->dev_res_bin_isid = 0;
|
||||||
dev->dev_flags &= ~DF_SPC2_RESERVATIONS_WITH_ISID;
|
dev->dev_flags &= ~DF_SPC2_RESERVATIONS_WITH_ISID;
|
||||||
}
|
}
|
||||||
|
tpg = sess->se_tpg;
|
||||||
pr_debug("SCSI-2 Released reservation for %s LUN: %u ->"
|
pr_debug("SCSI-2 Released reservation for %s LUN: %u ->"
|
||||||
" MAPPED LUN: %u for %s\n", tpg->se_tpg_tfo->get_fabric_name(),
|
" MAPPED LUN: %u for %s\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||||
cmd->se_lun->unpacked_lun, cmd->se_deve->mapped_lun,
|
cmd->se_lun->unpacked_lun, cmd->se_deve->mapped_lun,
|
||||||
|
@ -245,7 +246,7 @@ int target_scsi2_reservation_reserve(struct se_cmd *cmd)
|
||||||
{
|
{
|
||||||
struct se_device *dev = cmd->se_dev;
|
struct se_device *dev = cmd->se_dev;
|
||||||
struct se_session *sess = cmd->se_sess;
|
struct se_session *sess = cmd->se_sess;
|
||||||
struct se_portal_group *tpg = sess->se_tpg;
|
struct se_portal_group *tpg;
|
||||||
int ret = 0, rc;
|
int ret = 0, rc;
|
||||||
|
|
||||||
if ((cmd->t_task_cdb[1] & 0x01) &&
|
if ((cmd->t_task_cdb[1] & 0x01) &&
|
||||||
|
@ -260,7 +261,7 @@ int target_scsi2_reservation_reserve(struct se_cmd *cmd)
|
||||||
* This is currently the case for target_core_mod passthrough struct se_cmd
|
* This is currently the case for target_core_mod passthrough struct se_cmd
|
||||||
* ops
|
* ops
|
||||||
*/
|
*/
|
||||||
if (!sess || !tpg)
|
if (!sess || !sess->se_tpg)
|
||||||
goto out;
|
goto out;
|
||||||
rc = target_check_scsi2_reservation_conflict(cmd);
|
rc = target_check_scsi2_reservation_conflict(cmd);
|
||||||
if (rc == 1)
|
if (rc == 1)
|
||||||
|
@ -272,6 +273,7 @@ int target_scsi2_reservation_reserve(struct se_cmd *cmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
tpg = sess->se_tpg;
|
||||||
spin_lock(&dev->dev_reservation_lock);
|
spin_lock(&dev->dev_reservation_lock);
|
||||||
if (dev->dev_reserved_node_acl &&
|
if (dev->dev_reserved_node_acl &&
|
||||||
(dev->dev_reserved_node_acl != sess->se_node_acl)) {
|
(dev->dev_reserved_node_acl != sess->se_node_acl)) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче