Re: [PATCH v2] tcmu: Fix dev_config_store

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

 



On 07/07/2017 02:20 PM, Bryant G. Ly wrote:
> Currently when there is a reconfig, the uio_info->name
> does not get updated to reflect the change in the dev_config
> name change.
> 
> On restart tcmu-runner there will be a mismatch between
> the dev_config string in uio and the tcmu structure that contains
> the string. When this occurs it'll reload the one in uio
> and you lose the reconfigured device path.
> 
> v2: Created a helper function for the updating of uio_info
> 
> Signed-off-by: Bryant G. Ly <bryantly@xxxxxxxxxxxxxxxxxx>
> ---
>  drivers/target/target_core_user.c | 32 ++++++++++++++++++++++++--------
>  1 file changed, 24 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c
> index cbbfba0..2f1fa92 100644
> --- a/drivers/target/target_core_user.c
> +++ b/drivers/target/target_core_user.c
> @@ -1418,19 +1418,14 @@ static int tcmu_netlink_event(struct tcmu_dev *udev, enum tcmu_genl_cmd cmd,
>  	return ret;
>  }
>  
> -static int tcmu_configure_device(struct se_device *dev)
> +static int tcmu_update_uio_info(struct tcmu_dev *udev)
>  {
> -	struct tcmu_dev *udev = TCMU_DEV(dev);
>  	struct tcmu_hba *hba = udev->hba->hba_ptr;
>  	struct uio_info *info;
> -	struct tcmu_mailbox *mb;
> -	size_t size;
> -	size_t used;
> -	int ret = 0;
> +	size_t size, used;
>  	char *str;
>  
>  	info = &udev->uio_info;
> -
>  	size = snprintf(NULL, 0, "tcm-user/%u/%s/%s", hba->host_id, udev->name,
>  			udev->dev_config);
>  	size += 1; /* for \0 */
> @@ -1439,12 +1434,27 @@ static int tcmu_configure_device(struct se_device *dev)
>  		return -ENOMEM;
>  
>  	used = snprintf(str, size, "tcm-user/%u/%s", hba->host_id, udev->name);
> -
>  	if (udev->dev_config[0])
>  		snprintf(str + used, size - used, "/%s", udev->dev_config);
>  
>  	info->name = str;

When used for the reconfigure case info->name will have been set by the
initial tcmu_configure_device call, so we need a kfree of the old string.
--
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