[dm-devel] [PATCH] multipath-tools: check null path before handle path-failed event
Christophe Varoqui
christophe.varoqui at opensvc.com
Sat Jan 13 09:11:04 UTC 2018
Merged.
Thanks.
On Mon, Dec 4, 2017 at 2:15 PM, Guan Junxiong <guanjunxiong at huawei.com>
wrote:
> In the hot-plug storage OS, if we tear down the target storage,
> there is a race between the path removing from the path list and
> handling the path-failed udev event. Therefore, we need to check
> null path before handle path-failed event.
>
> Signed-off-by: Guan Junxiong <guanjunxiong at huawei.com>
> ---
> multipathd/main.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/multipathd/main.c b/multipathd/main.c
> index 31ce923..84bb2c5 100644
> --- a/multipathd/main.c
> +++ b/multipathd/main.c
> @@ -1073,7 +1073,7 @@ uev_pathfail_check(struct uevent *uev, struct
> vectors *vecs)
> {
> char *action = NULL, *devt = NULL;
> struct path *pp;
> - int r;
> + int r = 1;
>
> action = uevent_get_dm_action(uev);
> if (!action)
> @@ -1090,15 +1090,17 @@ uev_pathfail_check(struct uevent *uev, struct
> vectors *vecs)
> lock(&vecs->lock);
> pthread_testcancel();
> pp = find_path_by_devt(vecs->pathvec, devt);
> + if (!pp)
> + goto out_lock;
> r = io_err_stat_handle_pathfail(pp);
> - lock_cleanup_pop(vecs->lock);
> -
> if (r)
> condlog(3, "io_err_stat: %s: cannot handle pathfail
> uevent",
> pp->dev);
> +out_lock:
> + lock_cleanup_pop(vecs->lock);
> FREE(devt);
> FREE(action);
> - return 0;
> + return r;
> out:
> FREE(action);
> return 1;
> --
> 2.6.4.windows.1
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20180113/6b3d25c8/attachment.htm>
More information about the dm-devel
mailing list