diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2016-03-09 14:51:03 -0500 |
---|---|---|
committer | Jes Sorensen <Jes.Sorensen@redhat.com> | 2016-03-22 14:06:07 -0400 |
commit | fbd3e15c0a42b764b7a95fc3b2095c27cec4664a (patch) | |
tree | 69eac84373bbf3452189d39bdd526d4cdb740660 /Manage.c | |
parent | 9d1fbf65a53a210840d513d68818f507124cf88d (diff) | |
download | mdadm-fbd3e15c0a42b764b7a95fc3b2095c27cec4664a.tar.gz |
Manage: Manage_add(): Avoid NULL initialization of dev_st
dev_st is only ever assigned if array->not_persistent == 0, so move
the second use of it into the same scope where the assignment is
made.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Diffstat (limited to 'Manage.c')
-rw-r--r-- | Manage.c | 25 |
1 files changed, 12 insertions, 13 deletions
@@ -738,7 +738,7 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv, int raid_slot) { unsigned long long ldsize; - struct supertype *dev_st = NULL; + struct supertype *dev_st; int j; mdu_disk_info_t disc; @@ -843,20 +843,19 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv, * simply re-add it. */ - if (array->not_persistent==0) { + if (array->not_persistent == 0) { dev_st = dup_super(tst); dev_st->ss->load_super(dev_st, tfd, NULL); - } - if (dev_st && dev_st->sb && dv->disposition != 'S') { - int rv = attempt_re_add(fd, tfd, dv, - dev_st, tst, - rdev, - update, devname, - verbose, - array); - dev_st->ss->free_super(dev_st); - if (rv) - return rv; + if (dev_st->sb && dv->disposition != 'S') { + int rv; + + rv = attempt_re_add(fd, tfd, dv, dev_st, tst, + rdev, update, devname, + verbose, array); + dev_st->ss->free_super(dev_st); + if (rv) + return rv; + } } if (dv->disposition == 'M') { if (verbose > 0) |