[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