aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2015-02-24 19:44:11 -0500
committerNeilBrown <neilb@suse.de>2015-02-24 19:44:11 -0500
commitba599aca520d6005138d1e5edb125fb83a130141 (patch)
treeaa0cf6d5ca70fef5dfffcf797d40ed6a2aaa5d31 /drivers/md
parent1aee41f637694d4bbf91c24195f2b63e3f6badd2 (diff)
md: fix error paths from bitmap_create.
Recent change to bitmap_create mishandles errors. In particular a failure doesn't alway cause 'err' to be set. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/md.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 5703c2e89f3a..ae3432e57ccb 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -6118,7 +6118,8 @@ static int set_bitmap_file(struct mddev *mddev, int fd)
6118 if (!IS_ERR(bitmap)) { 6118 if (!IS_ERR(bitmap)) {
6119 mddev->bitmap = bitmap; 6119 mddev->bitmap = bitmap;
6120 err = bitmap_load(mddev); 6120 err = bitmap_load(mddev);
6121 } 6121 } else
6122 err = PTR_ERR(bitmap);
6122 } 6123 }
6123 if (fd < 0 || err) { 6124 if (fd < 0 || err) {
6124 bitmap_destroy(mddev); 6125 bitmap_destroy(mddev);
@@ -6408,7 +6409,8 @@ static int update_array_info(struct mddev *mddev, mdu_array_info_t *info)
6408 if (!IS_ERR(bitmap)) { 6409 if (!IS_ERR(bitmap)) {
6409 mddev->bitmap = bitmap; 6410 mddev->bitmap = bitmap;
6410 rv = bitmap_load(mddev); 6411 rv = bitmap_load(mddev);
6411 } 6412 } else
6413 rv = PTR_ERR(bitmap);
6412 if (rv) 6414 if (rv)
6413 bitmap_destroy(mddev); 6415 bitmap_destroy(mddev);
6414 mddev->pers->quiesce(mddev, 0); 6416 mddev->pers->quiesce(mddev, 0);