diff options
-rw-r--r-- | drivers/md/md.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 8c1e1900893d..ea6837d45fc8 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -3601,10 +3601,13 @@ static int set_bitmap_file(mddev_t *mddev, int fd) | |||
3601 | mddev->pers->quiesce(mddev, 1); | 3601 | mddev->pers->quiesce(mddev, 1); |
3602 | if (fd >= 0) | 3602 | if (fd >= 0) |
3603 | err = bitmap_create(mddev); | 3603 | err = bitmap_create(mddev); |
3604 | if (fd < 0 || err) | 3604 | if (fd < 0 || err) { |
3605 | bitmap_destroy(mddev); | 3605 | bitmap_destroy(mddev); |
3606 | fd = -1; /* make sure to put the file */ | ||
3607 | } | ||
3606 | mddev->pers->quiesce(mddev, 0); | 3608 | mddev->pers->quiesce(mddev, 0); |
3607 | } else if (fd < 0) { | 3609 | } |
3610 | if (fd < 0) { | ||
3608 | if (mddev->bitmap_file) | 3611 | if (mddev->bitmap_file) |
3609 | fput(mddev->bitmap_file); | 3612 | fput(mddev->bitmap_file); |
3610 | mddev->bitmap_file = NULL; | 3613 | mddev->bitmap_file = NULL; |