• Dan Williams's avatar
    md: handle_stripe5 - add request/completion logic for async expand ops · f0a50d37
    Dan Williams authored
    When a stripe is being expanded bulk copying takes place to move the data
    from the old stripe to the new.  Since raid5_run_ops only operates on one
    stripe at a time these bulk copies are handled in-line under the stripe
    lock.  In the dma offload case we poll for the completion of the operation.
    
    After the data has been copied into the new stripe the parity needs to be
    recalculated across the new disks.  We reuse the existing postxor
    functionality to carry out this calculation.  By setting STRIPE_OP_POSTXOR
    without setting STRIPE_OP_BIODRAIN the completion path in handle stripe
    can differentiate expand operations from normal write operations.
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    Acked-By: default avatarNeilBrown <neilb@suse.de>
    f0a50d37
raid5.c 138 KB