aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-03-31 00:09:39 -0400
committerNeilBrown <neilb@suse.de>2009-03-31 00:09:39 -0400
commitf701d589aa34d7531183c9ac6f7713ba14212b02 (patch)
treed388cd7fa54c520f12233470a35ebb0676677e7a /drivers/md/raid5.c
parent18b0033491f584a2d79697da714b1ef9d6b27d22 (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.c12
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 */
99const 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
5154static int __init raid5_init(void) 5149static 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);