md/raid6: move raid6 data processing to raid6_pq.ko
commitf701d589aa34d7531183c9ac6f7713ba14212b02
authorDan Williams <dan.j.williams@intel.com>
Tue, 31 Mar 2009 04:09:39 +0000 (31 15:09 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 31 Mar 2009 04:09:39 +0000 (31 15:09 +1100)
treed388cd7fa54c520f12233470a35ebb0676677e7a
parent18b0033491f584a2d79697da714b1ef9d6b27d22
md/raid6: move raid6 data processing to raid6_pq.ko

Move the raid6 data processing routines into a standalone module
(raid6_pq) to prepare them to be called from async_tx wrappers and other
non-md drivers/modules.  This precludes a circular dependency of raid456
needing the async modules for data processing while those modules in
turn depend on raid456 for the base level synchronous raid6 routines.

To support this move:
1/ The exportable definitions in raid6.h move to include/linux/raid/pq.h
2/ The raid6_call, recovery calls, and table symbols are exported
3/ Extra #ifdef __KERNEL__ statements to enable the userspace raid6test to
   compile

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
15 files changed:
drivers/md/Kconfig
drivers/md/Makefile
drivers/md/mktables.c
drivers/md/raid5.c
drivers/md/raid5.h
drivers/md/raid6algos.c
drivers/md/raid6altivec.uc
drivers/md/raid6int.uc
drivers/md/raid6mmx.c
drivers/md/raid6recov.c
drivers/md/raid6sse1.c
drivers/md/raid6sse2.c
drivers/md/raid6test/Makefile
drivers/md/raid6test/test.c
include/linux/raid/pq.h [moved from drivers/md/raid6.h with 89% similarity]