• NeilBrown's avatar
    md: Ensure an md array never has too many devices. · de01dfad
    NeilBrown authored
    Each different metadata format supported by md supports a
    different maximum number of devices.
    We really should be enforcing this maximum in the kernel, but
    we aren't quite doing that properly.
    
    We currently only enforce it at the 'hot_add' point, which is an
    older interface which is not used by current userspace.
    
    We need to also enforce it at 'add_new_disk' time for active arrays
    and at 'do_md_run' time when starting a new array.
    
    So move the test from 'hot_add' into 'bind_rdev_to_array' which is
    called from both 'hot_add' and 'add_new_disk, and add a new
    test in 'analyse_sbs' which is called from 'do_md_run'.
    
    This bug (or missing feature) has been around "forever" and so
    the patch is suitable for any -stable that is currently maintained.
    
    Cc: stable@kernel.org
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    de01dfad
md.c 168 KB