Re: [PATCH] target/core: fix return code of core_tpg_.*_lun

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2012-01-11 at 21:43 +0100, Sebastian Andrzej Siewior wrote:
> - core_tpg_pre_addlun()
>   returns always ERR_PTR() or the pointer, never NULL. The additional
>   check for NULL in core_dev_add_lun() is not required.
> 
> - core_tpg_pre_dellun()
>   returns always ERR_PTR() or the pointer, never NULL. The check for NULL
>   in core_dev_del_lun() is wrong. The third argument (int *) is never
>   used, remove it.
> 
> - core_dev_add_lun()
>   returns always NULL or the pointer, never ERR_PTR. The check for
>   IS_ERR() is not required.
> 
> In the long term we might want to aim for consistent return codes of
> pointer :)
> 
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> ---
>  drivers/target/target_core_device.c          |    9 ++++-----
>  drivers/target/target_core_fabric_configfs.c |    2 +-
>  drivers/target/target_core_internal.h        |    2 +-
>  drivers/target/target_core_tpg.c             |    3 +--
>  4 files changed, 7 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
> index 00159a4..f0baa7c 100644
> --- a/drivers/target/target_core_device.c
> +++ b/drivers/target/target_core_device.c
> @@ -1303,7 +1303,7 @@ struct se_lun *core_dev_add_lun(
>  	}
>  
>  	lun_p = core_tpg_pre_addlun(tpg, lun);
> -	if ((IS_ERR(lun_p)) || !lun_p)
> +	if (IS_ERR(lun_p))
>  		return NULL;
>  
>  	if (dev->dev_flags & DF_READ_ONLY)
> @@ -1349,11 +1349,10 @@ int core_dev_del_lun(
>  	u32 unpacked_lun)
>  {
>  	struct se_lun *lun;
> -	int ret = 0;
>  
> -	lun = core_tpg_pre_dellun(tpg, unpacked_lun, &ret);
> -	if (!lun)
> -		return ret;
> +	lun = core_tpg_pre_dellun(tpg, unpacked_lun);
> +	if (IS_ERR(lun))
> +		return PTR_ERR(lun);
>  
>  	core_tpg_post_dellun(tpg, lun);
>  
> diff --git a/drivers/target/target_core_fabric_configfs.c b/drivers/target/target_core_fabric_configfs.c
> index 4f77cce..2066b07 100644
> --- a/drivers/target/target_core_fabric_configfs.c
> +++ b/drivers/target/target_core_fabric_configfs.c
> @@ -766,7 +766,7 @@ static int target_fabric_port_link(
>  
>  	lun_p = core_dev_add_lun(se_tpg, dev->se_hba, dev,
>  				lun->unpacked_lun);
> -	if (IS_ERR(lun_p) || !lun_p) {
> +	if (!lun_p) {
>  		pr_err("core_dev_add_lun() failed\n");
>  		ret = -EINVAL;
>  		goto out;
> diff --git a/drivers/target/target_core_internal.h b/drivers/target/target_core_internal.h
> index 6ff6708..3a92368 100644
> --- a/drivers/target/target_core_internal.h
> +++ b/drivers/target/target_core_internal.h
> @@ -90,7 +90,7 @@ void	core_tpg_wait_for_nacl_pr_ref(struct se_node_acl *);
>  struct se_lun *core_tpg_pre_addlun(struct se_portal_group *, u32);
>  int	core_tpg_post_addlun(struct se_portal_group *, struct se_lun *,
>  		u32, void *);
> -struct se_lun *core_tpg_pre_dellun(struct se_portal_group *, u32, int *);
> +struct se_lun *core_tpg_pre_dellun(struct se_portal_group *, u32 unpacked_lun);
>  int	core_tpg_post_dellun(struct se_portal_group *, struct se_lun *);
>  
>  /* target_core_transport.c */
> diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c
> index b766802..06336ec 100644
> --- a/drivers/target/target_core_tpg.c
> +++ b/drivers/target/target_core_tpg.c
> @@ -807,8 +807,7 @@ static void core_tpg_shutdown_lun(
>  
>  struct se_lun *core_tpg_pre_dellun(
>  	struct se_portal_group *tpg,
> -	u32 unpacked_lun,
> -	int *ret)
> +	u32 unpacked_lun)
>  {
>  	struct se_lun *lun;
>  

Good catches here.  Applying this to lio-core/master, and fixing up the
remaining in-consistency mentioned above wrt to core_dev_add_lun()
failure handling.

Thanks Sebastian!

--nab



--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux