diff options
author | NeilBrown <neilb@suse.com> | 2015-10-01 16:03:38 +1000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-10-22 14:49:33 -0700 |
commit | 458c21f8fda545e6a1a4019fba1b010726f108c0 (patch) | |
tree | 221cf5cceffe1950f410f9a4e5af504a2f06d87c | |
parent | 11195a5e5b0665b1cde0c6e629342592240e8ec2 (diff) | |
download | lwn-458c21f8fda545e6a1a4019fba1b010726f108c0.tar.gz lwn-458c21f8fda545e6a1a4019fba1b010726f108c0.zip |
md/bitmap: don't pass -1 to bitmap_storage_alloc.
commit da6fb7a9e5bd6f04f7e15070f630bdf1ea502841 upstream.
Passing -1 to bitmap_storage_alloc() causes page->index to be set to
-1, which is quite problematic.
So only pass ->cluster_slot if mddev_is_clustered().
Fixes: b97e92574c0b ("Use separate bitmaps for each nodes in the cluster")
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/md/bitmap.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index e51de52eeb94..48b5890c28e3 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c @@ -1997,7 +1997,8 @@ int bitmap_resize(struct bitmap *bitmap, sector_t blocks, if (bitmap->mddev->bitmap_info.offset || bitmap->mddev->bitmap_info.file) ret = bitmap_storage_alloc(&store, chunks, !bitmap->mddev->bitmap_info.external, - bitmap->cluster_slot); + mddev_is_clustered(bitmap->mddev) + ? bitmap->cluster_slot : 0); if (ret) goto err; |