• NeilBrown's avatar
    [PATCH] md: Infrastructure to allow normal IO to continue while array is expanding · 7ecaa1e6
    NeilBrown authored
    We need to allow that different stripes are of different effective sizes, and
    use the appropriate size.  Also, when a stripe is being expanded, we must
    block any IO attempts until the stripe is stable again.
    
    Key elements in this change are:
     - each stripe_head gets a 'disk' field which is part of the key,
       thus there can sometimes be two stripe heads of the same area of
       the array, but covering different numbers of devices.  One of these
       will be marked STRIPE_EXPANDING and so won't accept new requests.
     - conf->expand_progress tracks how the expansion is progressing and
       is used to determine whether the target part of the array has been
       expanded yet or not.
    Signed-off-by: default avatarNeil Brown <neilb@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    7ecaa1e6
raid5.c 64.4 KB