Re: [PATCH v6 04/11] block: Introduce REQ_OP_ZONE_APPEND

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

 



On Wed, Apr 15, 2020 at 06:05:06PM +0900, Johannes Thumshirn wrote:
> @@ -1206,6 +1219,7 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list,
>  	bool no_tag = false;
>  	int errors, queued;
>  	blk_status_t ret = BLK_STS_OK;
> +	LIST_HEAD(zone_list);
>  
>  	if (list_empty(list))
>  		return false;
> @@ -1264,6 +1278,16 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list,
>  		if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE) {
>  			blk_mq_handle_dev_resource(rq, list);
>  			break;
> +		} else if (ret == BLK_STS_ZONE_RESOURCE) {
> +			/*
> +			 * Move the request to zone_list and keep going through
> +			 * the dispatch list to find more requests the drive can
> +			 * accept.
> +			 */
> +			blk_mq_handle_zone_resource(rq, &zone_list);
> +			if (list_empty(list))
> +				break;
> +			continue;
>  		}

Stupid question. At the end of this function I see:

	/*
	 * If the host/device is unable to accept more work, inform the
	 * caller of that.
	 */
	if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE)
		return false;

Why is BLK_STS_ZONE_RESOURCE missing?




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux