[dm-devel] Re: [PATCH] fix resubmit/end_io bug in dm-mpath (take 2)

Mike Christie michaelc at cs.wisc.edu
Sun Jan 11 05:56:02 UTC 2004


Joe,

Sorry for the late comment.

>  		spin_lock(&m->path_lock);
>  		path = __find_path(m, bio->bi_bdev);
>  		__fail_path(path);
> +		r = __remap_io(m, bio);
>  		spin_unlock(&m->path_lock);
>  
> -		r = __resubmit_io(m, bio);
> +		if (!r) {
> +			/* queue for the daemon to resubmit */
> +			spin_lock_irqsave(&m->failed_lock, flags);
> +			bio->bi_next = m->failed_ios;
> +			m->failed_ios = bio;
> +			spin_unlock_irqrestore(&m->failed_lock, flags);
> +

I think it might be better if the __remap_io call was in 
dispatch_failed_ios before generic_make_request is called.

dispatch_failed_ios would need to be tweaked to handle __remap_io 
failing, but similar modifications are needed for devices that need to 
send a command to activate a path before it can be used.

Mike Christie





More information about the dm-devel mailing list