[dm-devel] [PATCH] Reattach device_handler for multipathing

Chandra Seetharaman sekharan at us.ibm.com
Thu Apr 23 18:12:51 UTC 2009


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 at suse.de>

Acked-by: Chandra Seetharaman <sekharan at us.ibm.com>
> ---
>  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;
>  		}




More information about the dm-devel mailing list