Re: [PATCH 05/13] target: Simplify metadata handling when clearing aptpl metadata

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

 



On Wed, 2013-05-15 at 17:36 -0700, Andy Grover wrote:
> Simpler to just set buf in update_and_write_aptpl(), rather than passing
> down to ____core_scsi3_update_aptpl_buf().
> 
> Signed-off-by: Andy Grover <agrover@xxxxxxxxxx>
> ---
>  drivers/target/target_core_pr.c |   39 +++++++++------------------------------
>  1 files changed, 9 insertions(+), 30 deletions(-)
> 
> diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
> index c89a33e..dba5336 100644
> --- a/drivers/target/target_core_pr.c
> +++ b/drivers/target/target_core_pr.c
> @@ -1834,8 +1834,7 @@ out:
>  static int __core_scsi3_update_aptpl_buf(
>  	struct se_device *dev,
>  	unsigned char *buf,
> -	u32 pr_aptpl_buf_len,
> -	int clear_aptpl_metadata)
> +	u32 pr_aptpl_buf_len)
>  {
>  	struct se_lun *lun;
>  	struct se_portal_group *tpg;
> @@ -1845,14 +1844,7 @@ static int __core_scsi3_update_aptpl_buf(
>  	int reg_count = 0;
>  
>  	memset(buf, 0, pr_aptpl_buf_len);
> -	/*
> -	 * Called to clear metadata once APTPL has been deactivated.
> -	 */
> -	if (clear_aptpl_metadata) {
> -		snprintf(buf, pr_aptpl_buf_len,
> -				"No Registrations or Reservations\n");
> -		return 0;
> -	}
> +
>  	/*
>  	 * Walk the registration list..
>  	 */
> @@ -1937,14 +1929,12 @@ static int __core_scsi3_update_aptpl_buf(
>  static int core_scsi3_update_aptpl_buf(
>  	struct se_device *dev,
>  	unsigned char *buf,
> -	u32 pr_aptpl_buf_len,
> -	int clear_aptpl_metadata)
> +	u32 pr_aptpl_buf_len)
>  {
>  	int ret;
>  
>  	spin_lock(&dev->dev_reservation_lock);
> -	ret = __core_scsi3_update_aptpl_buf(dev, buf, pr_aptpl_buf_len,
> -				clear_aptpl_metadata);
> +	ret = __core_scsi3_update_aptpl_buf(dev, buf, pr_aptpl_buf_len);
>  	spin_unlock(&dev->dev_reservation_lock);
>  
>  	return ret;
> @@ -1997,32 +1987,21 @@ core_scsi3_update_and_write_aptpl(struct se_device *dev, unsigned char *in_buf,
>  		u32 in_pr_aptpl_buf_len)
>  {
>  	unsigned char null_buf[64], *buf;
> -	u32 pr_aptpl_buf_len;
> -	int clear_aptpl_metadata = 0;
>  	int ret;
>  
>  	/*
>  	 * Can be called with a NULL pointer from PROUT service action CLEAR
>  	 */
>  	if (!in_buf) {
> -		memset(null_buf, 0, 64);
> -		buf = &null_buf[0];
> -		/*
> -		 * This will clear the APTPL metadata to:
> -		 * "No Registrations or Reservations" status
> -		 */
> -		pr_aptpl_buf_len = 64;
> -		clear_aptpl_metadata = 1;
> +		snprintf(null_buf, 64, "No Registrations or Reservations\n");
> +		buf = null_buf;
>  	} else {
> +		ret = core_scsi3_update_aptpl_buf(dev, in_buf, in_pr_aptpl_buf_len);
> +		if (ret != 0)
> +			return ret;
>  		buf = in_buf;
> -		pr_aptpl_buf_len = in_pr_aptpl_buf_len;
>  	}
>  
> -	ret = core_scsi3_update_aptpl_buf(dev, buf, pr_aptpl_buf_len,
> -				clear_aptpl_metadata);
> -	if (ret != 0)
> -		return ret;
> -

How can this be correct for the PROUT service action CLEAR case if
core_scsi3_update_aptpl_buf() is no longer called for both cases..?

--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