md: don't impose the MD_SB_DISKS limit on arrays without metadata.
authorNeilBrown <neilb@suse.com>
Tue, 28 Feb 2017 20:31:28 +0000 (07:31 +1100)
committerShaohua Li <shli@fb.com>
Thu, 9 Mar 2017 17:02:30 +0000 (09:02 -0800)
These arrays, created with "mdadm --build" don't benefit from a limit.
The default will be used, which is '0' and is interpreted as "don't
impose a limit".

Reported-by: ian_bruce@mail.ru
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
drivers/md/md.c

index bd15a18485c85c52f437ec7b8523b400b5ef257a..cd89ad3c3a0d2c4f47fedd12f9f4f47b0247cc25 100644 (file)
@@ -6450,11 +6450,10 @@ static int set_array_info(struct mddev *mddev, mdu_array_info_t *info)
        mddev->layout        = info->layout;
        mddev->chunk_sectors = info->chunk_size >> 9;
 
-       mddev->max_disks     = MD_SB_DISKS;
-
        if (mddev->persistent) {
-               mddev->flags         = 0;
-               mddev->sb_flags         = 0;
+               mddev->max_disks = MD_SB_DISKS;
+               mddev->flags = 0;
+               mddev->sb_flags = 0;
        }
        set_bit(MD_SB_CHANGE_DEVS, &mddev->sb_flags);