On Thu, 2009-04-23 at 08:35 +0200, Hannes Reinecke wrote: > When specifying a different hardware handler via multipath > features we should be able to override the built-in defaults. > > Signed-off-by: Hannes Reinecke <hare@xxxxxxx> Acked-by: Chandra Seetharaman <sekharan@xxxxxxxxxx> > --- > drivers/md/dm-mpath.c | 14 ++++++++++++-- > 1 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c > index 095f77b..e6611de 100644 > --- a/drivers/md/dm-mpath.c > +++ b/drivers/md/dm-mpath.c > @@ -592,9 +592,19 @@ static struct pgpath *parse_path(struct arg_set *as, struct path_selector *ps, > } > > if (m->hw_handler_name) { > - r = scsi_dh_attach(bdev_get_queue(p->path.dev->bdev), > - m->hw_handler_name); > + struct request_queue *q = bdev_get_queue(p->path.dev->bdev); > + > + r = scsi_dh_attach(q, m->hw_handler_name); > + if (r == -EBUSY) { > + /* > + * Already attached to different hw_handler, > + * try to reattach with correct one. > + */ > + scsi_dh_detach(q); > + r = scsi_dh_attach(q, m->hw_handler_name); > + } > if (r < 0) { > + ti->error = "error attaching hardware handler"; > dm_put_device(ti, p->path.dev); > goto bad; > } -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel