On Fri, Jan 12 2018 at 6:42pm -0500, Bart Van Assche <Bart.VanAssche@xxxxxxx> wrote: > 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"? Yes, it was a quick patch to get your thoughts. > > > 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. OK, point taken. > Otherwise this patch looks fine to me. Cool, thanks. Mike -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel