• Andre Noll's avatar
    md: raid0: Replace hash table lookup by looping over all strip_zones. · dc582663
    Andre Noll authored
    The number of strip_zones of a raid0 array is bounded by the number of
    drives in the array and is in fact much smaller for typical setups. For
    example, any raid0 array containing identical disks will have only
    a single strip_zone.
    
    Therefore, the hash tables which are used for quickly finding the
    strip_zone that holds a particular sector are of questionable value
    and add quite a bit of unnecessary complexity.
    
    This patch replaces the hash table lookup by equivalent code which
    simply loops over all strip zones to find the zone that holds the
    given sector.
    
    In order to make this loop as fast as possible, the zone->start field
    of struct strip_zone has been renamed to zone_end, and it now stores
    the beginning of the next zone in sectors. This allows to save one
    addition in the loop.
    
    Subsequent cleanup patches will remove the hash table structure.
    Signed-off-by: default avatarAndre Noll <maan@systemlinux.org>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    dc582663
raid0.c 14.7 KB