diff options
author | NeilBrown <neilb@suse.de> | 2012-03-19 12:46:37 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2012-03-19 12:46:37 +1100 |
commit | 4474ca42e2577563a919fd3ed782e2ec55bf11a2 (patch) | |
tree | db451c8fad37b281ddbf1d00a779257537cc61ff /drivers/md/bitmap.c | |
parent | c744a65c1e2d59acc54333ce80a5b0702a98010b (diff) | |
download | op-kernel-dev-4474ca42e2577563a919fd3ed782e2ec55bf11a2.zip op-kernel-dev-4474ca42e2577563a919fd3ed782e2ec55bf11a2.tar.gz |
md/bitmap: ensure to load bitmap when creating via sysfs.
When commit 69e51b449d383e (md/bitmap: separate out loading a bitmap...)
created bitmap_load, it missed calling it after bitmap_create when a
bitmap is created through the sysfs interface.
So if a bitmap is added this way, we don't allocate memory properly
and can crash.
This is suitable for any -stable release since 2.6.35.
Cc: stable@vger.kernel.org
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r-- | drivers/md/bitmap.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index cdf36b1..239af9a 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c @@ -1904,6 +1904,8 @@ location_store(struct mddev *mddev, const char *buf, size_t len) if (mddev->pers) { mddev->pers->quiesce(mddev, 1); rv = bitmap_create(mddev); + if (!rv) + rv = bitmap_load(mddev); if (rv) { bitmap_destroy(mddev); mddev->bitmap_info.offset = 0; |