ACK/Cmnt: [PATCH][EOAN] UBUNTU: SAUCE: Revert "s390/dasd: Add discard support for ESE volumes"

Stefan Bader stefan.bader at canonical.com
Wed Oct 2 05:36:29 UTC 2019


On 01.10.19 17:19, Dimitri John Ledkov wrote:
> BugLink: https://bugs.launchpad.net/bugs/1846219
> 
> This reverts commit 7e64db1597fe114b83fe17d0ba96c6aa5fca419a.
> 
> Signed-off-by: Dimitri John Ledkov <xnox at ubuntu.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
> ---

I agree with Seth on the verbosity (can be done when applying, though).

-Stefan

>  drivers/s390/block/dasd_eckd.c | 57 ++--------------------------------
>  1 file changed, 3 insertions(+), 54 deletions(-)
> 
> diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c
> index b213c40d1a51..c94184d080f8 100644
> --- a/drivers/s390/block/dasd_eckd.c
> +++ b/drivers/s390/block/dasd_eckd.c
> @@ -2055,9 +2055,6 @@ dasd_eckd_check_characteristics(struct dasd_device *device)
>  	if (readonly)
>  		set_bit(DASD_FLAG_DEVICE_RO, &device->flags);
>  
> -	if (dasd_eckd_is_ese(device))
> -		dasd_set_feature(device->cdev, DASD_FEATURE_DISCARD, 1);
> -
>  	dev_info(&device->cdev->dev, "New DASD %04X/%02X (CU %04X/%02X) "
>  		 "with %d cylinders, %d heads, %d sectors%s\n",
>  		 private->rdc_data.dev_type,
> @@ -3691,14 +3688,6 @@ static int dasd_eckd_release_space(struct dasd_device *device,
>  		return -EINVAL;
>  }
>  
> -static struct dasd_ccw_req *
> -dasd_eckd_build_cp_discard(struct dasd_device *device, struct dasd_block *block,
> -			   struct request *req, sector_t first_trk,
> -			   sector_t last_trk)
> -{
> -	return dasd_eckd_dso_ras(device, block, req, first_trk, last_trk, 1);
> -}
> -
>  static struct dasd_ccw_req *dasd_eckd_build_cp_cmd_single(
>  					       struct dasd_device *startdev,
>  					       struct dasd_block *block,
> @@ -4443,10 +4432,6 @@ static struct dasd_ccw_req *dasd_eckd_build_cp(struct dasd_device *startdev,
>  	cmdwtd = private->features.feature[12] & 0x40;
>  	use_prefix = private->features.feature[8] & 0x01;
>  
> -	if (req_op(req) == REQ_OP_DISCARD)
> -		return dasd_eckd_build_cp_discard(startdev, block, req,
> -						  first_trk, last_trk);
> -
>  	cqr = NULL;
>  	if (cdlspecial || dasd_page_cache) {
>  		/* do nothing, just fall through to the cmd mode single case */
> @@ -4725,14 +4710,12 @@ static struct dasd_ccw_req *dasd_eckd_build_alias_cp(struct dasd_device *base,
>  						     struct dasd_block *block,
>  						     struct request *req)
>  {
> -	struct dasd_device *startdev = NULL;
>  	struct dasd_eckd_private *private;
> -	struct dasd_ccw_req *cqr;
> +	struct dasd_device *startdev;
>  	unsigned long flags;
> +	struct dasd_ccw_req *cqr;
>  
> -	/* Discard requests can only be processed on base devices */
> -	if (req_op(req) != REQ_OP_DISCARD)
> -		startdev = dasd_alias_get_start_dev(base);
> +	startdev = dasd_alias_get_start_dev(base);
>  	if (!startdev)
>  		startdev = base;
>  	private = startdev->private;
> @@ -6513,20 +6496,8 @@ static void dasd_eckd_setup_blk_queue(struct dasd_block *block)
>  	unsigned int logical_block_size = block->bp_block;
>  	struct request_queue *q = block->request_queue;
>  	struct dasd_device *device = block->base;
> -	struct dasd_eckd_private *private;
> -	unsigned int max_discard_sectors;
> -	unsigned int max_bytes;
> -	unsigned int ext_bytes; /* Extent Size in Bytes */
> -	int recs_per_trk;
> -	int trks_per_cyl;
> -	int ext_limit;
> -	int ext_size; /* Extent Size in Cylinders */
>  	int max;
>  
> -	private = device->private;
> -	trks_per_cyl = private->rdc_data.trk_per_cyl;
> -	recs_per_trk = recs_per_track(&private->rdc_data, 0, logical_block_size);
> -
>  	if (device->features & DASD_FEATURE_USERAW) {
>  		/*
>  		 * the max_blocks value for raw_track access is 256
> @@ -6547,28 +6518,6 @@ static void dasd_eckd_setup_blk_queue(struct dasd_block *block)
>  	/* With page sized segments each segment can be translated into one idaw/tidaw */
>  	blk_queue_max_segment_size(q, PAGE_SIZE);
>  	blk_queue_segment_boundary(q, PAGE_SIZE - 1);
> -
> -	if (dasd_eckd_is_ese(device)) {
> -		/*
> -		 * Depending on the extent size, up to UINT_MAX bytes can be
> -		 * accepted. However, neither DASD_ECKD_RAS_EXTS_MAX nor the
> -		 * device limits should be exceeded.
> -		 */
> -		ext_size = dasd_eckd_ext_size(device);
> -		ext_limit = min(private->real_cyl / ext_size, DASD_ECKD_RAS_EXTS_MAX);
> -		ext_bytes = ext_size * trks_per_cyl * recs_per_trk *
> -			logical_block_size;
> -		max_bytes = UINT_MAX - (UINT_MAX % ext_bytes);
> -		if (max_bytes / ext_bytes > ext_limit)
> -			max_bytes = ext_bytes * ext_limit;
> -
> -		max_discard_sectors = max_bytes / 512;
> -
> -		blk_queue_max_discard_sectors(q, max_discard_sectors);
> -		blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
> -		q->limits.discard_granularity = ext_bytes;
> -		q->limits.discard_alignment = ext_bytes;
> -	}
>  }
>  
>  static struct ccw_driver dasd_eckd_driver = {
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20191002/a4ec5eac/attachment.sig>


More information about the kernel-team mailing list