dm-raid1.c: fix NULL dereferences
authorAdrian Bunk <bunk@kernel.org>
Tue, 19 Feb 2008 19:44:19 +0000 (19:44 +0000)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 19 Feb 2008 23:52:27 +0000 (15:52 -0800)
This patch fixes two NULL dereferences introduced by commit
06386bbfd2441416875d0403d405c56822f6ebac and spotted by the Coverity
checker.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/md/dm-raid1.c

index 2928ef228101e941ff3876b454601d59b938a1ac..51605870f898e23dfa450314de6ef2409d4351c0 100644 (file)
@@ -1695,14 +1695,15 @@ static int mirror_end_io(struct dm_target *ti, struct bio *bio,
                         * information for a retry or there was no other
                         * mirror in-sync.
                         */
                         * information for a retry or there was no other
                         * mirror in-sync.
                         */
-                       DMERR_LIMIT("Mirror read failed from %s.",
-                                   m->dev->name);
+                       DMERR_LIMIT("Mirror read failed.");
                        return -EIO;
                }
                        return -EIO;
                }
+
+               m = read_record->m;
+
                DMERR("Mirror read failed from %s. Trying alternative device.",
                      m->dev->name);
 
                DMERR("Mirror read failed from %s. Trying alternative device.",
                      m->dev->name);
 
-               m = read_record->m;
                fail_mirror(m, DM_RAID1_READ_ERROR);
 
                /*
                fail_mirror(m, DM_RAID1_READ_ERROR);
 
                /*