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>
This commit is contained in:
@@ -45,11 +45,11 @@
|
||||
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/raid/pq.h>
|
||||
#include <linux/async_tx.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include "md.h"
|
||||
#include "raid5.h"
|
||||
#include "raid6.h"
|
||||
#include "bitmap.h"
|
||||
|
||||
/*
|
||||
@@ -94,11 +94,6 @@
|
||||
|
||||
#define printk_rl(args...) ((void) (printk_ratelimit() && printk(args)))
|
||||
|
||||
#if !RAID6_USE_EMPTY_ZERO_PAGE
|
||||
/* In .bss so it's zeroed */
|
||||
const char raid6_empty_zero_page[PAGE_SIZE] __attribute__((aligned(256)));
|
||||
#endif
|
||||
|
||||
/*
|
||||
* We maintain a biased count of active stripes in the bottom 16 bits of
|
||||
* bi_phys_segments, and a count of processed stripes in the upper 16 bits
|
||||
@@ -5153,11 +5148,6 @@ static struct mdk_personality raid4_personality =
|
||||
|
||||
static int __init raid5_init(void)
|
||||
{
|
||||
int e;
|
||||
|
||||
e = raid6_select_algo();
|
||||
if ( e )
|
||||
return e;
|
||||
register_md_personality(&raid6_personality);
|
||||
register_md_personality(&raid5_personality);
|
||||
register_md_personality(&raid4_personality);
|
||||
|
Reference in New Issue
Block a user