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 489eaf31a96..0d26b39e8a1 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -3356,10 +3356,13 @@ static int set_bitmap_file(mddev_t *mddev, int fd) mddev->pers->quiesce(mddev, 1); if (fd >= 0) err = bitmap_create(mddev); - if (fd < 0 || err) + if (fd < 0 || err) { bitmap_destroy(mddev); + fd = -1; /* make sure to put the file */ + } mddev->pers->quiesce(mddev, 0); - } else if (fd < 0) { + } + if (fd < 0) { if (mddev->bitmap_file) fput(mddev->bitmap_file); mddev->bitmap_file = NULL; |