diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-03-31 00:09:39 -0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-03-31 00:09:39 -0400 |
commit | f701d589aa34d7531183c9ac6f7713ba14212b02 (patch) | |
tree | d388cd7fa54c520f12233470a35ebb0676677e7a /drivers/md/raid5.c | |
parent | 18b0033491f584a2d79697da714b1ef9d6b27d22 (diff) |
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>
Diffstat (limited to 'drivers/md/raid5.c')
-rw-r--r-- | drivers/md/raid5.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index e1ee181b79bb..1f1b054ff0b6 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -45,11 +45,11 @@ | |||
45 | 45 | ||
46 | #include <linux/blkdev.h> | 46 | #include <linux/blkdev.h> |
47 | #include <linux/kthread.h> | 47 | #include <linux/kthread.h> |
48 | #include <linux/raid/pq.h> | ||
48 | #include <linux/async_tx.h> | 49 | #include <linux/async_tx.h> |
49 | #include <linux/seq_file.h> | 50 | #include <linux/seq_file.h> |
50 | #include "md.h" | 51 | #include "md.h" |
51 | #include "raid5.h" | 52 | #include "raid5.h" |
52 | #include "raid6.h" | ||
53 | #include "bitmap.h" | 53 | #include "bitmap.h" |
54 | 54 | ||
55 | /* | 55 | /* |
@@ -94,11 +94,6 @@ | |||
94 | 94 | ||
95 | #define printk_rl(args...) ((void) (printk_ratelimit() && printk(args))) | 95 | #define printk_rl(args...) ((void) (printk_ratelimit() && printk(args))) |
96 | 96 | ||
97 | #if !RAID6_USE_EMPTY_ZERO_PAGE | ||
98 | /* In .bss so it's zeroed */ | ||
99 | const char raid6_empty_zero_page[PAGE_SIZE] __attribute__((aligned(256))); | ||
100 | #endif | ||
101 | |||
102 | /* | 97 | /* |
103 | * We maintain a biased count of active stripes in the bottom 16 bits of | 98 | * We maintain a biased count of active stripes in the bottom 16 bits of |
104 | * bi_phys_segments, and a count of processed stripes in the upper 16 bits | 99 | * bi_phys_segments, and a count of processed stripes in the upper 16 bits |
@@ -5153,11 +5148,6 @@ static struct mdk_personality raid4_personality = | |||
5153 | 5148 | ||
5154 | static int __init raid5_init(void) | 5149 | static int __init raid5_init(void) |
5155 | { | 5150 | { |
5156 | int e; | ||
5157 | |||
5158 | e = raid6_select_algo(); | ||
5159 | if ( e ) | ||
5160 | return e; | ||
5161 | register_md_personality(&raid6_personality); | 5151 | register_md_personality(&raid6_personality); |
5162 | register_md_personality(&raid5_personality); | 5152 | register_md_personality(&raid5_personality); |
5163 | register_md_personality(&raid4_personality); | 5153 | register_md_personality(&raid4_personality); |