dm mpath: fix check for null mpio in end_io fn
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Fri, 12 Oct 2012 15:59:42 +0000 (16:59 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Fri, 12 Oct 2012 15:59:42 +0000 (16:59 +0100)
The mpio dereference should be moved below the BUG_ON NULL test
in multipath_end_io().

spatch with a semantic match was used to found this.
(http://coccinelle.lip6.fr/)

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-mpath.c

index d778563a4ffd2ca829c42e3e480ed89cb908541e..573bd04591bfb0acb1eb2cb3a51f90f1e88da601 100644 (file)
@@ -1309,13 +1309,14 @@ static int multipath_end_io(struct dm_target *ti, struct request *clone,
 {
        struct multipath *m = ti->private;
        struct dm_mpath_io *mpio = map_context->ptr;
-       struct pgpath *pgpath = mpio->pgpath;
+       struct pgpath *pgpath;
        struct path_selector *ps;
        int r;
 
        BUG_ON(!mpio);
 
        r  = do_end_io(m, clone, error, mpio);
+       pgpath = mpio->pgpath;
        if (pgpath) {
                ps = &pgpath->pg->ps;
                if (ps->type->end_io)