summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-05-22 05:55:26 +0200
committerNeilBrown <neilb@suse.de>2012-05-22 05:55:26 +0200
commitb81a040481233e5171cb3fbc62f44636d5ea18b2 (patch)
tree769294e4042e3aa462306d3ad8a030d06ec7d19d
parentmd/bitmap: add bitmap_resize function to allow bitmap resizing. (diff)
downloadlinux-b81a040481233e5171cb3fbc62f44636d5ea18b2.tar.xz
linux-b81a040481233e5171cb3fbc62f44636d5ea18b2.zip
md/bitmap: make sure reshape request are reflected in superblock.
As a reshape may change the sync_size and/or chunk_size, we need to update these whenever we write out the bitmap superblock. Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r--drivers/md/bitmap.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index a35561f8f57d..8f681da00277 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -420,6 +420,9 @@ void bitmap_update_sb(struct bitmap *bitmap)
/* Just in case these have been changed via sysfs: */
sb->daemon_sleep = cpu_to_le32(bitmap->mddev->bitmap_info.daemon_sleep/HZ);
sb->write_behind = cpu_to_le32(bitmap->mddev->bitmap_info.max_write_behind);
+ /* This might have been changed by a reshape */
+ sb->sync_size = cpu_to_le64(bitmap->mddev->resync_max_sectors);
+ sb->chunksize = cpu_to_le32(bitmap->mddev->bitmap_info.chunksize);
kunmap_atomic(sb);
write_page(bitmap, bitmap->storage.sb_page, 1);
}