[dm-devel] [PATCH V3 0/5] dm-rq: improve sequential I/O performance

Bart Van Assche Bart.VanAssche at wdc.com
Fri Jan 12 23:42:25 UTC 2018


On Fri, 2018-01-12 at 18:17 -0500, Mike Snitzer wrote:
> @@ -1570,7 +1570,10 @@ static int multipath_end_io(struct dm_target *ti, struct request *clone,
>  	if (error && blk_path_error(error)) {
>  		struct multipath *m = ti->private;
>  
> -		r = DM_ENDIO_REQUEUE;
> +		if (r == BLK_STS_RESOURCE)
> +			r = DM_ENDIO_DELAY_REQUEUE;
> +		else
> +			r = DM_ENDIO_REQUEUE;

Did you perhaps intend "error == BLK_STS_RESOURCE"?

> diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h
> index 9ba8453..da83f64 100644
> --- a/include/linux/device-mapper.h
> +++ b/include/linux/device-mapper.h
> @@ -550,6 +550,7 @@ struct dm_table *dm_swap_table(struct mapped_device *md,
>  #define DM_ENDIO_DONE		0
>  #define DM_ENDIO_INCOMPLETE	1
>  #define DM_ENDIO_REQUEUE	2
> +#define DM_ENDIO_DELAY_REQUEUE	3
>  
>  /*
>   * Definitions of return values from target map function.
> @@ -557,7 +558,7 @@ struct dm_table *dm_swap_table(struct mapped_device *md,
>  #define DM_MAPIO_SUBMITTED	0
>  #define DM_MAPIO_REMAPPED	1
>  #define DM_MAPIO_REQUEUE	DM_ENDIO_REQUEUE
> -#define DM_MAPIO_DELAY_REQUEUE	3
> +#define DM_MAPIO_DELAY_REQUEUE	DM_ENDIO_DELAY_REQUEUE
>  #define DM_MAPIO_KILL		4
>  
>  #define dm_sector_div64(x, y)( \

Please consider to introduce enumeration types for the DM_ENDIO_* and the
DM_MAPIO_* constants such that the compiler can catch what I reported above.
Otherwise this patch looks fine to me.

Thanks,

Bart.




More information about the dm-devel mailing list