Re: [PATCH V2 1/2] scsi: sd: Fix sd_config_write_same()

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

 



Damien,

> +	if (sdkp->max_ws_blocks &&
> +	    sdkp->physical_block_size > logical_block_size) {
> +		/*
> +		 * Reporting a maximum number of blocks that is not aligned
> +		 * on the device physical size would cause a large write same
> +		 * request to be split into physically unaligned chunks by
> +		 * __blkdev_issue_write_zeroes() and __blkdev_issue_write_same()
> +		 * even if the caller of these functions took care to align the
> +		 * large request. So make sure the maximum reported is aligned
> +		 * to the device physical block size. This is only an optional
> +		 * optimization for regular disks, but this is mandatory to
> +		 * avoid failure of large write same requests directed at
> +		 * sequential write required zones of host-managed ZBC disks.
> +		 */
> +		sector_t phys_mask =
> +			bytes_to_logical(sdkp->device,
> +					 sdkp->physical_block_size) - 1;
> +
> +		sdkp->max_ws_blocks &= ~phys_mask;
> +	}
> +
>  out:
>  	blk_queue_max_write_same_sectors(q, sdkp->max_ws_blocks *
>  					 (logical_block_size >> 9));

ALIGN_DOWN(sdkp->max_ws_blocks, sdkp->physical_block_size)?

-- 
Martin K. Petersen	Oracle Linux Engineering



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux