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. -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel