aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-03-19 12:46:37 +1100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-04-02 09:27:11 -0700
commit6990597d9d2f45a969d16d068369f93db0a7d281 (patch)
tree3509df1e0836c9125f4354b93837037c9d1d2ab5 /drivers/md
parentbf8109a3b01b5c64e0ec4b11fa020abca8d00223 (diff)
downloadkernel_samsung_smdk4412-6990597d9d2f45a969d16d068369f93db0a7d281.zip
kernel_samsung_smdk4412-6990597d9d2f45a969d16d068369f93db0a7d281.tar.gz
kernel_samsung_smdk4412-6990597d9d2f45a969d16d068369f93db0a7d281.tar.bz2
md/bitmap: ensure to load bitmap when creating via sysfs.
commit 4474ca42e2577563a919fd3ed782e2ec55bf11a2 upstream. 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. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/bitmap.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 574b09a..703a3fa 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -1982,6 +1982,8 @@ location_store(mddev_t *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;