[PATCH 03/11][v3] async_tx: add support for asynchronous RAID6 recovery operations
Dan Williams
dan.j.williams at intel.com
Thu Jan 15 12:06:31 EST 2009
On Mon, Jan 12, 2009 at 5:43 PM, Yuri Tikhonov <yur at emcraft.com> wrote:
> + /* (2) Calculate Q+Qxy */
> + lptrs[0] = ptrs[failb];
> + lptrs[1] = ptrs[disks-1];
> + lptrs[2] = NULL;
> + tx = async_pq(lptrs, NULL, 0, 1, bytes, ASYNC_TX_DEP_ACK,
> + tx, NULL, NULL);
> +
> + /* (3) Calculate P+Pxy */
> + lptrs[0] = ptrs[faila];
> + lptrs[1] = ptrs[disks-2];
> + lptrs[2] = NULL;
> + tx = async_pq(lptrs, NULL, 0, 1, bytes, ASYNC_TX_DEP_ACK,
> + tx, NULL, NULL);
> +
These two calls convinced me that ASYNC_TX_PQ_ZERO_{P,Q} need to go.
A 1-source async_pq operation does not make sense. These should be:
/* (2) Calculate Q+Qxy */
lptrs[0] = ptrs[disks-1];
lptrs[1] = ptrs[failb];
tx = async_xor(lptrs[0], lptrs, 0, 2, bytes,
ASYNC_TX_XOR_DROP_DST|ASYNC_TX_DEP_ACK, tx, NULL, NULL);
/* (3) Calculate P+Pxy */
lptrs[0] = ptrs[disks-2];
lptrs[1] = ptrs[faila];
tx = async_xor(lptrs[0], lptrs, 0, 2, bytes,
ASYNC_TX_XOR_DROP_DST|ASYNC_TX_DEP_ACK, tx, NULL, NULL);
Regards,
Dan
More information about the Linuxppc-dev
mailing list