diff options
author | Dan Williams <dan.j.williams@intel.com> | 2008-06-28 08:32:09 +1000 |
---|---|---|
committer | Neil Brown <neilb@notabene.brown> | 2008-06-28 08:32:09 +1000 |
commit | 7b3a871ed995270268a481404454ceafe1a87478 (patch) | |
tree | 1d86a84bd885f6c24213dd84b5406a38597b457e /drivers/md/dm-exception-store.c | |
parent | d8ee0728b5b30d7a6f62c399a95e953616d31f23 (diff) | |
download | talos-op-linux-7b3a871ed995270268a481404454ceafe1a87478.tar.gz talos-op-linux-7b3a871ed995270268a481404454ceafe1a87478.zip |
md: handle operation chaining in raid5_run_ops
From: Dan Williams <dan.j.williams@intel.com>
Neil said:
> At the end of ops_run_compute5 you have:
> /* ack now if postxor is not set to be run */
> if (tx && !test_bit(STRIPE_OP_POSTXOR, &s->ops_run))
> async_tx_ack(tx);
>
> It looks odd having that test there. Would it fit in raid5_run_ops
> better?
The intended global interpretation is that raid5_run_ops can build a chain
of xor and memcpy operations. When MD registers the compute-xor it tells
async_tx to keep the operation handle around so that another item in the
dependency chain can be submitted. If we are just computing a block to
satisfy a read then we can terminate the chain immediately. raid5_run_ops
gives a better context for this test since it cares about the entire chain.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'drivers/md/dm-exception-store.c')
0 files changed, 0 insertions, 0 deletions