pr("testing the %d-disk case...\n", disks); for (i = 0; i < disks-1; i++) for (j = i+1; j < disks; j++) {
(*tests)++;
err += test_disks(i, j, disks);
}
return err;
}
staticint __init raid6_test(void)
{ int err = 0; int tests = 0; int i;
for (i = 0; i < NDISKS+3; i++) {
data[i] = alloc_page(GFP_KERNEL); if (!data[i]) { while (i--)
put_page(data[i]); return -ENOMEM;
}
}
/* the 4-disk and 5-disk cases are special for the recovery code */ if (NDISKS > 4)
err += test(4, &tests); if (NDISKS > 5)
err += test(5, &tests); /* the 11 and 12 disk cases are special for ioatdma (p-disabled * q-continuation without extended descriptor)
*/ if (NDISKS > 12) {
err += test(11, &tests);
err += test(12, &tests);
}
/* the 24 disk case is special for ioatdma as it is the boundary point * at which it needs to switch from 8-source ops to 16-source * ops for continuation (assumes DMA_HAS_PQ_CONTINUE is not set)
*/ if (NDISKS > 24)
err += test(24, &tests);
/* when compiled-in wait for drivers to load first (assumes dma drivers * are also compiled-in)
*/
late_initcall(raid6_test);
module_exit(raid6_test_exit);
MODULE_AUTHOR("Dan Williams ");
MODULE_DESCRIPTION("asynchronous RAID-6 recovery self tests");
MODULE_LICENSE("GPL");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.