Re: [PATCH] multipath-tools: check null path before handle path-failed event

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Merged.
Thanks.

On Mon, Dec 4, 2017 at 2:15 PM, Guan Junxiong <guanjunxiong@xxxxxxxxxx> 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@xxxxxxxxxx>
---
 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 = "" *devt = NULL;
        struct path *pp;
-       int r;
+       int r = 1;

        action = "">         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



--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel

[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux