[PATCH] md: really get sb_size setting right in all cases
There was another case where sb_size wasn't being set, so instead do the sensible thing and set if when filling in the content of a superblock. That ensures that whenever we write a superblock, the sb_size MUST be set. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
188c18fd79
Коммит
611815651b
|
@ -712,6 +712,8 @@ static void super_90_sync(mddev_t *mddev, mdk_rdev_t *rdev)
|
||||||
int i;
|
int i;
|
||||||
int active=0, working=0,failed=0,spare=0,nr_disks=0;
|
int active=0, working=0,failed=0,spare=0,nr_disks=0;
|
||||||
|
|
||||||
|
rdev->sb_size = MD_SB_BYTES;
|
||||||
|
|
||||||
sb = (mdp_super_t*)page_address(rdev->sb_page);
|
sb = (mdp_super_t*)page_address(rdev->sb_page);
|
||||||
|
|
||||||
memset(sb, 0, sizeof(*sb));
|
memset(sb, 0, sizeof(*sb));
|
||||||
|
@ -2303,8 +2305,6 @@ static int add_new_disk(mddev_t * mddev, mdu_disk_info_t *info)
|
||||||
else
|
else
|
||||||
rdev->in_sync = 0;
|
rdev->in_sync = 0;
|
||||||
|
|
||||||
rdev->sb_size = MD_SB_BYTES;
|
|
||||||
|
|
||||||
if (info->state & (1<<MD_DISK_WRITEMOSTLY))
|
if (info->state & (1<<MD_DISK_WRITEMOSTLY))
|
||||||
set_bit(WriteMostly, &rdev->flags);
|
set_bit(WriteMostly, &rdev->flags);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче