• Y
    md/raid6: asynchronous handle_stripe_dirtying6 · a9b39a74
    Yuri Tikhonov 提交于
    In the synchronous implementation of stripe dirtying we processed a
    degraded stripe with one call to handle_stripe_dirtying6().  I.e.
    compute the missing blocks from the other drives, then copy in the new
    data and reconstruct the parities.
    
    In the asynchronous case we do not perform stripe operations directly.
    Instead, operations are scheduled with flags to be later serviced by
    raid_run_ops.  So, for the degraded case the final reconstruction step
    can only be carried out after all blocks have been brought up to date by
    being read, or computed.  Like the raid5 case schedule_reconstruction()
    sets STRIPE_OP_RECONSTRUCT to request a parity generation pass and
    through operation chaining can handle compute and reconstruct in a
    single raid_run_ops pass.
    
    [dan.j.williams@intel.com: fixup handle_stripe_dirtying6 gating]
    Signed-off-by: NYuri Tikhonov <yur@emcraft.com>
    Signed-off-by: NIlya Yanok <yanok@emcraft.com>
    Signed-off-by: NDan Williams <dan.j.williams@intel.com>
    a9b39a74
raid5.c 160.2 KB