md: remove unwanted white space from md.c

My editor shows much of this is RED.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown
2014-09-30 14:23:59 +10:00
parent ac05f25669
commit f72ffdd686
10 changed files with 114 additions and 191 deletions

View File

@@ -355,7 +355,6 @@ static void linear_status (struct seq_file *seq, struct mddev *mddev)
seq_printf(seq, " %dk rounding", mddev->chunk_sectors / 2); seq_printf(seq, " %dk rounding", mddev->chunk_sectors / 2);
} }
static struct md_personality linear_personality = static struct md_personality linear_personality =
{ {
.name = "linear", .name = "linear",
@@ -379,7 +378,6 @@ static void linear_exit (void)
unregister_md_personality (&linear_personality); unregister_md_personality (&linear_personality);
} }
module_init(linear_init); module_init(linear_init);
module_exit(linear_exit); module_exit(linear_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");

View File

@@ -1,6 +1,6 @@
/* /*
md.c : Multiple Devices driver for Linux md.c : Multiple Devices driver for Linux
Copyright (C) 1998, 1999, 2000 Ingo Molnar Copyright (C) 1998, 1999, 2000 Ingo Molnar
completely rewritten, based on the MD driver code from Marc Zyngier completely rewritten, based on the MD driver code from Marc Zyngier
@@ -218,7 +218,6 @@ static void md_new_event_inintr(struct mddev *mddev)
static LIST_HEAD(all_mddevs); static LIST_HEAD(all_mddevs);
static DEFINE_SPINLOCK(all_mddevs_lock); static DEFINE_SPINLOCK(all_mddevs_lock);
/* /*
* iterates through all used mddevs in the system. * iterates through all used mddevs in the system.
* We take care to grab the all_mddevs_lock whenever navigating * We take care to grab the all_mddevs_lock whenever navigating
@@ -228,7 +227,7 @@ static DEFINE_SPINLOCK(all_mddevs_lock);
*/ */
#define for_each_mddev(_mddev,_tmp) \ #define for_each_mddev(_mddev,_tmp) \
\ \
for (({ spin_lock(&all_mddevs_lock); \ for (({ spin_lock(&all_mddevs_lock); \
_tmp = all_mddevs.next; \ _tmp = all_mddevs.next; \
_mddev = NULL;}); \ _mddev = NULL;}); \
({ if (_tmp != &all_mddevs) \ ({ if (_tmp != &all_mddevs) \
@@ -241,7 +240,6 @@ static DEFINE_SPINLOCK(all_mddevs_lock);
_tmp = _tmp->next;}) \ _tmp = _tmp->next;}) \
) )
/* Rather than calling directly into the personality make_request function, /* Rather than calling directly into the personality make_request function,
* IO requests come here first so that we can check if the device is * IO requests come here first so that we can check if the device is
* being suspended pending a reconfiguration. * being suspended pending a reconfiguration.
@@ -488,7 +486,7 @@ void mddev_init(struct mddev *mddev)
} }
EXPORT_SYMBOL_GPL(mddev_init); EXPORT_SYMBOL_GPL(mddev_init);
static struct mddev * mddev_find(dev_t unit) static struct mddev *mddev_find(dev_t unit)
{ {
struct mddev *mddev, *new = NULL; struct mddev *mddev, *new = NULL;
@@ -562,7 +560,7 @@ static struct mddev * mddev_find(dev_t unit)
goto retry; goto retry;
} }
static inline int __must_check mddev_lock(struct mddev * mddev) static inline int __must_check mddev_lock(struct mddev *mddev)
{ {
return mutex_lock_interruptible(&mddev->reconfig_mutex); return mutex_lock_interruptible(&mddev->reconfig_mutex);
} }
@@ -570,7 +568,7 @@ static inline int __must_check mddev_lock(struct mddev * mddev)
/* Sometimes we need to take the lock in a situation where /* Sometimes we need to take the lock in a situation where
* failure due to interrupts is not acceptable. * failure due to interrupts is not acceptable.
*/ */
static inline void mddev_lock_nointr(struct mddev * mddev) static inline void mddev_lock_nointr(struct mddev *mddev)
{ {
mutex_lock(&mddev->reconfig_mutex); mutex_lock(&mddev->reconfig_mutex);
} }
@@ -580,14 +578,14 @@ static inline int mddev_is_locked(struct mddev *mddev)
return mutex_is_locked(&mddev->reconfig_mutex); return mutex_is_locked(&mddev->reconfig_mutex);
} }
static inline int mddev_trylock(struct mddev * mddev) static inline int mddev_trylock(struct mddev *mddev)
{ {
return mutex_trylock(&mddev->reconfig_mutex); return mutex_trylock(&mddev->reconfig_mutex);
} }
static struct attribute_group md_redundancy_group; static struct attribute_group md_redundancy_group;
static void mddev_unlock(struct mddev * mddev) static void mddev_unlock(struct mddev *mddev)
{ {
if (mddev->to_remove) { if (mddev->to_remove) {
/* These cannot be removed under reconfig_mutex as /* These cannot be removed under reconfig_mutex as
@@ -682,7 +680,7 @@ static inline sector_t calc_dev_sboffset(struct md_rdev *rdev)
return MD_NEW_SIZE_SECTORS(num_sectors); return MD_NEW_SIZE_SECTORS(num_sectors);
} }
static int alloc_disk_sb(struct md_rdev * rdev) static int alloc_disk_sb(struct md_rdev *rdev)
{ {
if (rdev->sb_page) if (rdev->sb_page)
MD_BUG(); MD_BUG();
@@ -783,7 +781,7 @@ int sync_page_io(struct md_rdev *rdev, sector_t sector, int size,
} }
EXPORT_SYMBOL_GPL(sync_page_io); EXPORT_SYMBOL_GPL(sync_page_io);
static int read_disk_sb(struct md_rdev * rdev, int size) static int read_disk_sb(struct md_rdev *rdev, int size)
{ {
char b[BDEVNAME_SIZE]; char b[BDEVNAME_SIZE];
if (!rdev->sb_page) { if (!rdev->sb_page) {
@@ -793,7 +791,6 @@ static int read_disk_sb(struct md_rdev * rdev, int size)
if (rdev->sb_loaded) if (rdev->sb_loaded)
return 0; return 0;
if (!sync_page_io(rdev, 0, size, rdev->sb_page, READ, true)) if (!sync_page_io(rdev, 0, size, rdev->sb_page, READ, true))
goto fail; goto fail;
rdev->sb_loaded = 1; rdev->sb_loaded = 1;
@@ -807,7 +804,7 @@ fail:
static int uuid_equal(mdp_super_t *sb1, mdp_super_t *sb2) static int uuid_equal(mdp_super_t *sb1, mdp_super_t *sb2)
{ {
return sb1->set_uuid0 == sb2->set_uuid0 && return sb1->set_uuid0 == sb2->set_uuid0 &&
sb1->set_uuid1 == sb2->set_uuid1 && sb1->set_uuid1 == sb2->set_uuid1 &&
sb1->set_uuid2 == sb2->set_uuid2 && sb1->set_uuid2 == sb2->set_uuid2 &&
sb1->set_uuid3 == sb2->set_uuid3; sb1->set_uuid3 == sb2->set_uuid3;
@@ -843,14 +840,13 @@ abort:
return ret; return ret;
} }
static u32 md_csum_fold(u32 csum) static u32 md_csum_fold(u32 csum)
{ {
csum = (csum & 0xffff) + (csum >> 16); csum = (csum & 0xffff) + (csum >> 16);
return (csum & 0xffff) + (csum >> 16); return (csum & 0xffff) + (csum >> 16);
} }
static unsigned int calc_sb_csum(mdp_super_t * sb) static unsigned int calc_sb_csum(mdp_super_t *sb)
{ {
u64 newcsum = 0; u64 newcsum = 0;
u32 *sb32 = (u32*)sb; u32 *sb32 = (u32*)sb;
@@ -864,7 +860,6 @@ static unsigned int calc_sb_csum(mdp_super_t * sb)
newcsum += sb32[i]; newcsum += sb32[i];
csum = (newcsum & 0xffffffff) + (newcsum>>32); csum = (newcsum & 0xffffffff) + (newcsum>>32);
#ifdef CONFIG_ALPHA #ifdef CONFIG_ALPHA
/* This used to use csum_partial, which was wrong for several /* This used to use csum_partial, which was wrong for several
* reasons including that different results are returned on * reasons including that different results are returned on
@@ -881,7 +876,6 @@ static unsigned int calc_sb_csum(mdp_super_t * sb)
return csum; return csum;
} }
/* /*
* Handle superblock details. * Handle superblock details.
* We want to be able to handle multiple superblock formats * We want to be able to handle multiple superblock formats
@@ -1179,7 +1173,6 @@ static void super_90_sync(struct mddev *mddev, struct md_rdev *rdev)
struct md_rdev *rdev2; struct md_rdev *rdev2;
int next_spare = mddev->raid_disks; int next_spare = mddev->raid_disks;
/* make rdev->sb match mddev data.. /* make rdev->sb match mddev data..
* *
* 1/ zero out disks * 1/ zero out disks
@@ -1348,7 +1341,7 @@ super_90_allow_new_offset(struct md_rdev *rdev, unsigned long long new_offset)
* version 1 superblock * version 1 superblock
*/ */
static __le32 calc_sb_1_csum(struct mdp_superblock_1 * sb) static __le32 calc_sb_1_csum(struct mdp_superblock_1 *sb)
{ {
__le32 disk_csum; __le32 disk_csum;
u32 csum; u32 csum;
@@ -1412,7 +1405,6 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
ret = read_disk_sb(rdev, 4096); ret = read_disk_sb(rdev, 4096);
if (ret) return ret; if (ret) return ret;
sb = page_address(rdev->sb_page); sb = page_address(rdev->sb_page);
if (sb->magic != cpu_to_le32(MD_SB_MAGIC) || if (sb->magic != cpu_to_le32(MD_SB_MAGIC) ||
@@ -2015,7 +2007,7 @@ void md_integrity_add_rdev(struct md_rdev *rdev, struct mddev *mddev)
} }
EXPORT_SYMBOL(md_integrity_add_rdev); EXPORT_SYMBOL(md_integrity_add_rdev);
static int bind_rdev_to_array(struct md_rdev * rdev, struct mddev * mddev) static int bind_rdev_to_array(struct md_rdev *rdev, struct mddev *mddev)
{ {
char b[BDEVNAME_SIZE]; char b[BDEVNAME_SIZE];
struct kobject *ko; struct kobject *ko;
@@ -2105,7 +2097,7 @@ static void md_delayed_delete(struct work_struct *ws)
kobject_put(&rdev->kobj); kobject_put(&rdev->kobj);
} }
static void unbind_rdev_from_array(struct md_rdev * rdev) static void unbind_rdev_from_array(struct md_rdev *rdev)
{ {
char b[BDEVNAME_SIZE]; char b[BDEVNAME_SIZE];
if (!rdev->mddev) { if (!rdev->mddev) {
@@ -2163,7 +2155,7 @@ static void unlock_rdev(struct md_rdev *rdev)
void md_autodetect_dev(dev_t dev); void md_autodetect_dev(dev_t dev);
static void export_rdev(struct md_rdev * rdev) static void export_rdev(struct md_rdev *rdev)
{ {
char b[BDEVNAME_SIZE]; char b[BDEVNAME_SIZE];
printk(KERN_INFO "md: export_rdev(%s)\n", printk(KERN_INFO "md: export_rdev(%s)\n",
@@ -2179,7 +2171,7 @@ static void export_rdev(struct md_rdev * rdev)
kobject_put(&rdev->kobj); kobject_put(&rdev->kobj);
} }
static void kick_rdev_from_array(struct md_rdev * rdev) static void kick_rdev_from_array(struct md_rdev *rdev)
{ {
unbind_rdev_from_array(rdev); unbind_rdev_from_array(rdev);
export_rdev(rdev); export_rdev(rdev);
@@ -2283,9 +2275,9 @@ static void print_rdev(struct md_rdev *rdev, int major_version)
{ {
char b[BDEVNAME_SIZE]; char b[BDEVNAME_SIZE];
printk(KERN_INFO "md: rdev %s, Sect:%08llu F:%d S:%d DN:%u\n", printk(KERN_INFO "md: rdev %s, Sect:%08llu F:%d S:%d DN:%u\n",
bdevname(rdev->bdev, b), (unsigned long long)rdev->sectors, bdevname(rdev->bdev, b), (unsigned long long)rdev->sectors,
test_bit(Faulty, &rdev->flags), test_bit(In_sync, &rdev->flags), test_bit(Faulty, &rdev->flags), test_bit(In_sync, &rdev->flags),
rdev->desc_nr); rdev->desc_nr);
if (rdev->sb_loaded) { if (rdev->sb_loaded) {
printk(KERN_INFO "md: rdev superblock (MJ:%d):\n", major_version); printk(KERN_INFO "md: rdev superblock (MJ:%d):\n", major_version);
switch (major_version) { switch (major_version) {
@@ -2328,8 +2320,7 @@ static void md_print_devices(void)
printk("\n"); printk("\n");
} }
static void sync_sbs(struct mddev *mddev, int nospares)
static void sync_sbs(struct mddev * mddev, int nospares)
{ {
/* Update each superblock (in-memory image), but /* Update each superblock (in-memory image), but
* if we are allowed to, skip spares which already * if we are allowed to, skip spares which already
@@ -2352,7 +2343,7 @@ static void sync_sbs(struct mddev * mddev, int nospares)
} }
} }
static void md_update_sb(struct mddev * mddev, int force_change) static void md_update_sb(struct mddev *mddev, int force_change)
{ {
struct md_rdev *rdev; struct md_rdev *rdev;
int sync_req; int sync_req;
@@ -2812,7 +2803,6 @@ slot_store(struct md_rdev *rdev, const char *buf, size_t len)
return len; return len;
} }
static struct rdev_sysfs_entry rdev_slot = static struct rdev_sysfs_entry rdev_slot =
__ATTR(slot, S_IRUGO|S_IWUSR, slot_show, slot_store); __ATTR(slot, S_IRUGO|S_IWUSR, slot_show, slot_store);
@@ -3009,7 +2999,6 @@ rdev_size_store(struct md_rdev *rdev, const char *buf, size_t len)
static struct rdev_sysfs_entry rdev_size = static struct rdev_sysfs_entry rdev_size =
__ATTR(size, S_IRUGO|S_IWUSR, rdev_size_show, rdev_size_store); __ATTR(size, S_IRUGO|S_IWUSR, rdev_size_show, rdev_size_store);
static ssize_t recovery_start_show(struct md_rdev *rdev, char *page) static ssize_t recovery_start_show(struct md_rdev *rdev, char *page)
{ {
unsigned long long recovery_start = rdev->recovery_offset; unsigned long long recovery_start = rdev->recovery_offset;
@@ -3045,7 +3034,6 @@ static ssize_t recovery_start_store(struct md_rdev *rdev, const char *buf, size_
static struct rdev_sysfs_entry rdev_recovery_start = static struct rdev_sysfs_entry rdev_recovery_start =
__ATTR(recovery_start, S_IRUGO|S_IWUSR, recovery_start_show, recovery_start_store); __ATTR(recovery_start, S_IRUGO|S_IWUSR, recovery_start_show, recovery_start_store);
static ssize_t static ssize_t
badblocks_show(struct badblocks *bb, char *page, int unack); badblocks_show(struct badblocks *bb, char *page, int unack);
static ssize_t static ssize_t
@@ -3066,7 +3054,6 @@ static ssize_t bb_store(struct md_rdev *rdev, const char *page, size_t len)
static struct rdev_sysfs_entry rdev_bad_blocks = static struct rdev_sysfs_entry rdev_bad_blocks =
__ATTR(bad_blocks, S_IRUGO|S_IWUSR, bb_show, bb_store); __ATTR(bad_blocks, S_IRUGO|S_IWUSR, bb_show, bb_store);
static ssize_t ubb_show(struct md_rdev *rdev, char *page) static ssize_t ubb_show(struct md_rdev *rdev, char *page)
{ {
return badblocks_show(&rdev->badblocks, page, 1); return badblocks_show(&rdev->badblocks, page, 1);
@@ -3263,8 +3250,7 @@ abort_free:
* Check a full RAID array for plausibility * Check a full RAID array for plausibility
*/ */
static void analyze_sbs(struct mddev *mddev)
static void analyze_sbs(struct mddev * mddev)
{ {
int i; int i;
struct md_rdev *rdev, *freshest, *tmp; struct md_rdev *rdev, *freshest, *tmp;
@@ -3287,7 +3273,6 @@ static void analyze_sbs(struct mddev * mddev)
kick_rdev_from_array(rdev); kick_rdev_from_array(rdev);
} }
super_types[mddev->major_version]. super_types[mddev->major_version].
validate_super(mddev, freshest); validate_super(mddev, freshest);
@@ -3363,7 +3348,6 @@ int strict_strtoul_scaled(const char *cp, unsigned long *res, int scale)
return 0; return 0;
} }
static void md_safemode_timeout(unsigned long data); static void md_safemode_timeout(unsigned long data);
static ssize_t static ssize_t
@@ -3593,7 +3577,6 @@ level_store(struct mddev *mddev, const char *buf, size_t len)
static struct md_sysfs_entry md_level = static struct md_sysfs_entry md_level =
__ATTR(level, S_IRUGO|S_IWUSR, level_show, level_store); __ATTR(level, S_IRUGO|S_IWUSR, level_show, level_store);
static ssize_t static ssize_t
layout_show(struct mddev *mddev, char *page) layout_show(struct mddev *mddev, char *page)
{ {
@@ -3636,7 +3619,6 @@ layout_store(struct mddev *mddev, const char *buf, size_t len)
static struct md_sysfs_entry md_layout = static struct md_sysfs_entry md_layout =
__ATTR(layout, S_IRUGO|S_IWUSR, layout_show, layout_store); __ATTR(layout, S_IRUGO|S_IWUSR, layout_show, layout_store);
static ssize_t static ssize_t
raid_disks_show(struct mddev *mddev, char *page) raid_disks_show(struct mddev *mddev, char *page)
{ {
@@ -3841,9 +3823,9 @@ array_state_show(struct mddev *mddev, char *page)
return sprintf(page, "%s\n", array_states[st]); return sprintf(page, "%s\n", array_states[st]);
} }
static int do_md_stop(struct mddev * mddev, int ro, struct block_device *bdev); static int do_md_stop(struct mddev *mddev, int ro, struct block_device *bdev);
static int md_set_readonly(struct mddev * mddev, struct block_device *bdev); static int md_set_readonly(struct mddev *mddev, struct block_device *bdev);
static int do_md_run(struct mddev * mddev); static int do_md_run(struct mddev *mddev);
static int restart_array(struct mddev *mddev); static int restart_array(struct mddev *mddev);
static ssize_t static ssize_t
@@ -3994,7 +3976,6 @@ new_dev_store(struct mddev *mddev, const char *buf, size_t len)
minor != MINOR(dev)) minor != MINOR(dev))
return -EOVERFLOW; return -EOVERFLOW;
if (mddev->persistent) { if (mddev->persistent) {
rdev = md_import_device(dev, mddev->major_version, rdev = md_import_device(dev, mddev->major_version,
mddev->minor_version); mddev->minor_version);
@@ -4090,7 +4071,6 @@ size_store(struct mddev *mddev, const char *buf, size_t len)
static struct md_sysfs_entry md_size = static struct md_sysfs_entry md_size =
__ATTR(component_size, S_IRUGO|S_IWUSR, size_show, size_store); __ATTR(component_size, S_IRUGO|S_IWUSR, size_show, size_store);
/* Metadata version. /* Metadata version.
* This is one of * This is one of
* 'none' for arrays with no metadata (good luck...) * 'none' for arrays with no metadata (good luck...)
@@ -4492,7 +4472,6 @@ suspend_lo_store(struct mddev *mddev, const char *buf, size_t len)
static struct md_sysfs_entry md_suspend_lo = static struct md_sysfs_entry md_suspend_lo =
__ATTR(suspend_lo, S_IRUGO|S_IWUSR, suspend_lo_show, suspend_lo_store); __ATTR(suspend_lo, S_IRUGO|S_IWUSR, suspend_lo_show, suspend_lo_store);
static ssize_t static ssize_t
suspend_hi_show(struct mddev *mddev, char *page) suspend_hi_show(struct mddev *mddev, char *page)
{ {
@@ -4680,7 +4659,6 @@ static struct attribute_group md_redundancy_group = {
.attrs = md_redundancy_attrs, .attrs = md_redundancy_attrs,
}; };
static ssize_t static ssize_t
md_attr_show(struct kobject *kobj, struct attribute *attr, char *page) md_attr_show(struct kobject *kobj, struct attribute *attr, char *page)
{ {
@@ -5093,7 +5071,7 @@ int md_run(struct mddev *mddev)
} else if (mddev->ro == 2) /* auto-readonly not meaningful */ } else if (mddev->ro == 2) /* auto-readonly not meaningful */
mddev->ro = 0; mddev->ro = 0;
atomic_set(&mddev->writes_pending,0); atomic_set(&mddev->writes_pending,0);
atomic_set(&mddev->max_corr_read_errors, atomic_set(&mddev->max_corr_read_errors,
MD_DEFAULT_MAX_CORRECTED_READ_ERRORS); MD_DEFAULT_MAX_CORRECTED_READ_ERRORS);
mddev->safemode = 0; mddev->safemode = 0;
@@ -5321,7 +5299,7 @@ out:
* 0 - completely stop and dis-assemble array * 0 - completely stop and dis-assemble array
* 2 - stop but do not disassemble array * 2 - stop but do not disassemble array
*/ */
static int do_md_stop(struct mddev * mddev, int mode, static int do_md_stop(struct mddev *mddev, int mode,
struct block_device *bdev) struct block_device *bdev)
{ {
struct gendisk *disk = mddev->gendisk; struct gendisk *disk = mddev->gendisk;
@@ -5527,7 +5505,7 @@ static void autorun_devices(int part)
} }
#endif /* !MODULE */ #endif /* !MODULE */
static int get_version(void __user * arg) static int get_version(void __user *arg)
{ {
mdu_version_t ver; mdu_version_t ver;
@@ -5541,7 +5519,7 @@ static int get_version(void __user * arg)
return 0; return 0;
} }
static int get_array_info(struct mddev * mddev, void __user * arg) static int get_array_info(struct mddev *mddev, void __user *arg)
{ {
mdu_array_info_t info; mdu_array_info_t info;
int nr,working,insync,failed,spare; int nr,working,insync,failed,spare;
@@ -5596,7 +5574,7 @@ static int get_array_info(struct mddev * mddev, void __user * arg)
return 0; return 0;
} }
static int get_bitmap_file(struct mddev * mddev, void __user * arg) static int get_bitmap_file(struct mddev *mddev, void __user * arg)
{ {
mdu_bitmap_file_t *file = NULL; /* too big for stack allocation */ mdu_bitmap_file_t *file = NULL; /* too big for stack allocation */
char *ptr, *buf = NULL; char *ptr, *buf = NULL;
@@ -5634,7 +5612,7 @@ out:
return err; return err;
} }
static int get_disk_info(struct mddev * mddev, void __user * arg) static int get_disk_info(struct mddev *mddev, void __user * arg)
{ {
mdu_disk_info_t info; mdu_disk_info_t info;
struct md_rdev *rdev; struct md_rdev *rdev;
@@ -5670,7 +5648,7 @@ static int get_disk_info(struct mddev * mddev, void __user * arg)
return 0; return 0;
} }
static int add_new_disk(struct mddev * mddev, mdu_disk_info_t *info) static int add_new_disk(struct mddev *mddev, mdu_disk_info_t *info)
{ {
char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE]; char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];
struct md_rdev *rdev; struct md_rdev *rdev;
@@ -5838,7 +5816,7 @@ static int add_new_disk(struct mddev * mddev, mdu_disk_info_t *info)
return 0; return 0;
} }
static int hot_remove_disk(struct mddev * mddev, dev_t dev) static int hot_remove_disk(struct mddev *mddev, dev_t dev)
{ {
char b[BDEVNAME_SIZE]; char b[BDEVNAME_SIZE];
struct md_rdev *rdev; struct md_rdev *rdev;
@@ -5864,7 +5842,7 @@ busy:
return -EBUSY; return -EBUSY;
} }
static int hot_add_disk(struct mddev * mddev, dev_t dev) static int hot_add_disk(struct mddev *mddev, dev_t dev)
{ {
char b[BDEVNAME_SIZE]; char b[BDEVNAME_SIZE];
int err; int err;
@@ -5950,7 +5928,6 @@ static int set_bitmap_file(struct mddev *mddev, int fd)
/* we should be able to change the bitmap.. */ /* we should be able to change the bitmap.. */
} }
if (fd >= 0) { if (fd >= 0) {
struct inode *inode; struct inode *inode;
if (mddev->bitmap) if (mddev->bitmap)
@@ -6021,7 +5998,7 @@ static int set_bitmap_file(struct mddev *mddev, int fd)
* The minor and patch _version numbers are also kept incase the * The minor and patch _version numbers are also kept incase the
* super_block handler wishes to interpret them. * super_block handler wishes to interpret them.
*/ */
static int set_array_info(struct mddev * mddev, mdu_array_info_t *info) static int set_array_info(struct mddev *mddev, mdu_array_info_t *info)
{ {
if (info->raid_disks == 0) { if (info->raid_disks == 0) {
@@ -6178,7 +6155,6 @@ static int update_raid_disks(struct mddev *mddev, int raid_disks)
return rv; return rv;
} }
/* /*
* update_array_info is used to change the configuration of an * update_array_info is used to change the configuration of an
* on-line array. * on-line array.
@@ -6708,7 +6684,7 @@ static int md_open(struct block_device *bdev, fmode_t mode)
static void md_release(struct gendisk *disk, fmode_t mode) static void md_release(struct gendisk *disk, fmode_t mode)
{ {
struct mddev *mddev = disk->private_data; struct mddev *mddev = disk->private_data;
BUG_ON(!mddev); BUG_ON(!mddev);
atomic_dec(&mddev->openers); atomic_dec(&mddev->openers);
@@ -6743,7 +6719,7 @@ static const struct block_device_operations md_fops =
.revalidate_disk= md_revalidate, .revalidate_disk= md_revalidate,
}; };
static int md_thread(void * arg) static int md_thread(void *arg)
{ {
struct md_thread *thread = arg; struct md_thread *thread = arg;
@@ -6880,8 +6856,7 @@ static void status_unused(struct seq_file *seq)
seq_printf(seq, "\n"); seq_printf(seq, "\n");
} }
static void status_resync(struct seq_file *seq, struct mddev *mddev)
static void status_resync(struct seq_file *seq, struct mddev * mddev)
{ {
sector_t max_sectors, resync, res; sector_t max_sectors, resync, res;
unsigned long dt, db; unsigned long dt, db;
@@ -7114,7 +7089,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
if (mddev->pers) { if (mddev->pers) {
mddev->pers->status(seq, mddev); mddev->pers->status(seq, mddev);
seq_printf(seq, "\n "); seq_printf(seq, "\n ");
if (mddev->pers->sync_request) { if (mddev->pers->sync_request) {
if (mddev->curr_resync > 2) { if (mddev->curr_resync > 2) {
status_resync(seq, mddev); status_resync(seq, mddev);
@@ -7205,7 +7180,7 @@ int unregister_md_personality(struct md_personality *p)
static int is_mddev_idle(struct mddev *mddev, int init) static int is_mddev_idle(struct mddev *mddev, int init)
{ {
struct md_rdev * rdev; struct md_rdev *rdev;
int idle; int idle;
int curr_events; int curr_events;
@@ -7260,7 +7235,6 @@ void md_done_sync(struct mddev *mddev, int blocks, int ok)
} }
} }
/* md_write_start(mddev, bi) /* md_write_start(mddev, bi)
* If we need to update some array metadata (e.g. 'active' flag * If we need to update some array metadata (e.g. 'active' flag
* in superblock) before writing, schedule a superblock update * in superblock) before writing, schedule a superblock update
@@ -8637,7 +8611,6 @@ void md_autodetect_dev(dev_t dev)
} }
} }
static void autostart_arrays(int part) static void autostart_arrays(int part)
{ {
struct md_rdev *rdev; struct md_rdev *rdev;

View File

@@ -56,7 +56,7 @@ struct md_rdev {
__u64 sb_events; __u64 sb_events;
sector_t data_offset; /* start of data in array */ sector_t data_offset; /* start of data in array */
sector_t new_data_offset;/* only relevant while reshaping */ sector_t new_data_offset;/* only relevant while reshaping */
sector_t sb_start; /* offset of the super block (in 512byte sectors) */ sector_t sb_start; /* offset of the super block (in 512byte sectors) */
int sb_size; /* bytes in the superblock */ int sb_size; /* bytes in the superblock */
int preferred_minor; /* autorun support */ int preferred_minor; /* autorun support */
@@ -239,7 +239,7 @@ struct mddev {
minor_version, minor_version,
patch_version; patch_version;
int persistent; int persistent;
int external; /* metadata is int external; /* metadata is
* managed externally */ * managed externally */
char metadata_type[17]; /* externally set*/ char metadata_type[17]; /* externally set*/
int chunk_sectors; int chunk_sectors;
@@ -248,7 +248,7 @@ struct mddev {
char clevel[16]; char clevel[16];
int raid_disks; int raid_disks;
int max_disks; int max_disks;
sector_t dev_sectors; /* used size of sector_t dev_sectors; /* used size of
* component devices */ * component devices */
sector_t array_sectors; /* exported array size */ sector_t array_sectors; /* exported array size */
int external_size; /* size managed int external_size; /* size managed
@@ -398,7 +398,7 @@ struct mddev {
atomic_t writes_pending; atomic_t writes_pending;
struct request_queue *queue; /* for plugging ... */ struct request_queue *queue; /* for plugging ... */
struct bitmap *bitmap; /* the bitmap for the device */ struct bitmap *bitmap; /* the bitmap for the device */
struct { struct {
struct file *file; /* the bitmap file */ struct file *file; /* the bitmap file */
loff_t offset; /* offset from superblock of loff_t offset; /* offset from superblock of
@@ -421,7 +421,7 @@ struct mddev {
int external; int external;
} bitmap_info; } bitmap_info;
atomic_t max_corr_read_errors; /* max read retries */ atomic_t max_corr_read_errors; /* max read retries */
struct list_head all_mddevs; struct list_head all_mddevs;
struct attribute_group *to_remove; struct attribute_group *to_remove;
@@ -439,7 +439,6 @@ struct mddev {
void (*sync_super)(struct mddev *mddev, struct md_rdev *rdev); void (*sync_super)(struct mddev *mddev, struct md_rdev *rdev);
}; };
static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev) static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev)
{ {
int faulty = test_bit(Faulty, &rdev->flags); int faulty = test_bit(Faulty, &rdev->flags);
@@ -449,7 +448,7 @@ static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev)
static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors) static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
{ {
atomic_add(nr_sectors, &bdev->bd_contains->bd_disk->sync_io); atomic_add(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
} }
struct md_personality struct md_personality
@@ -493,7 +492,6 @@ struct md_personality
void *(*takeover) (struct mddev *mddev); void *(*takeover) (struct mddev *mddev);
}; };
struct md_sysfs_entry { struct md_sysfs_entry {
struct attribute attr; struct attribute attr;
ssize_t (*show)(struct mddev *, char *); ssize_t (*show)(struct mddev *, char *);
@@ -560,7 +558,7 @@ struct md_thread {
void (*run) (struct md_thread *thread); void (*run) (struct md_thread *thread);
struct mddev *mddev; struct mddev *mddev;
wait_queue_head_t wqueue; wait_queue_head_t wqueue;
unsigned long flags; unsigned long flags;
struct task_struct *tsk; struct task_struct *tsk;
unsigned long timeout; unsigned long timeout;
void *private; void *private;

View File

@@ -31,7 +31,6 @@
#define NR_RESERVED_BUFS 32 #define NR_RESERVED_BUFS 32
static int multipath_map (struct mpconf *conf) static int multipath_map (struct mpconf *conf)
{ {
int i, disks = conf->raid_disks; int i, disks = conf->raid_disks;
@@ -68,7 +67,6 @@ static void multipath_reschedule_retry (struct multipath_bh *mp_bh)
md_wakeup_thread(mddev->thread); md_wakeup_thread(mddev->thread);
} }
/* /*
* multipath_end_bh_io() is called when we have finished servicing a multipathed * multipath_end_bh_io() is called when we have finished servicing a multipathed
* operation and are ready to return a success/failure code to the buffer * operation and are ready to return a success/failure code to the buffer
@@ -242,7 +240,6 @@ static void print_multipath_conf (struct mpconf *conf)
} }
} }
static int multipath_add_disk(struct mddev *mddev, struct md_rdev *rdev) static int multipath_add_disk(struct mddev *mddev, struct md_rdev *rdev)
{ {
struct mpconf *conf = mddev->private; struct mpconf *conf = mddev->private;
@@ -325,8 +322,6 @@ abort:
return err; return err;
} }
/* /*
* This is a kernel thread which: * This is a kernel thread which:
* *
@@ -512,7 +507,6 @@ out:
return -EIO; return -EIO;
} }
static int multipath_stop (struct mddev *mddev) static int multipath_stop (struct mddev *mddev)
{ {
struct mpconf *conf = mddev->private; struct mpconf *conf = mddev->private;

View File

@@ -1,10 +1,9 @@
/* /*
raid0.c : Multiple Devices driver for Linux raid0.c : Multiple Devices driver for Linux
Copyright (C) 1994-96 Marc ZYNGIER Copyright (C) 1994-96 Marc ZYNGIER
<zyngier@ufr-info-p7.ibp.fr> or <zyngier@ufr-info-p7.ibp.fr> or
<maz@gloups.fdn.fr> <maz@gloups.fdn.fr>
Copyright (C) 1999, 2000 Ingo Molnar, Red Hat Copyright (C) 1999, 2000 Ingo Molnar, Red Hat
RAID-0 management functions. RAID-0 management functions.

View File

@@ -494,7 +494,6 @@ static void raid1_end_write_request(struct bio *bio, int error)
bio_put(to_put); bio_put(to_put);
} }
/* /*
* This routine returns the disk from which the requested read should * This routine returns the disk from which the requested read should
* be done. There is a per-array 'next expected sequential IO' sector * be done. There is a per-array 'next expected sequential IO' sector
@@ -1001,7 +1000,6 @@ static void unfreeze_array(struct r1conf *conf)
spin_unlock_irq(&conf->resync_lock); spin_unlock_irq(&conf->resync_lock);
} }
/* duplicate the data pages for behind I/O /* duplicate the data pages for behind I/O
*/ */
static void alloc_behind_pages(struct bio *bio, struct r1bio *r1_bio) static void alloc_behind_pages(struct bio *bio, struct r1bio *r1_bio)
@@ -1471,7 +1469,6 @@ static void status(struct seq_file *seq, struct mddev *mddev)
seq_printf(seq, "]"); seq_printf(seq, "]");
} }
static void error(struct mddev *mddev, struct md_rdev *rdev) static void error(struct mddev *mddev, struct md_rdev *rdev)
{ {
char b[BDEVNAME_SIZE]; char b[BDEVNAME_SIZE];
@@ -1606,7 +1603,6 @@ static int raid1_spare_active(struct mddev *mddev)
return count; return count;
} }
static int raid1_add_disk(struct mddev *mddev, struct md_rdev *rdev) static int raid1_add_disk(struct mddev *mddev, struct md_rdev *rdev)
{ {
struct r1conf *conf = mddev->private; struct r1conf *conf = mddev->private;
@@ -1735,7 +1731,6 @@ abort:
return err; return err;
} }
static void end_sync_read(struct bio *bio, int error) static void end_sync_read(struct bio *bio, int error)
{ {
struct r1bio *r1_bio = bio->bi_private; struct r1bio *r1_bio = bio->bi_private;
@@ -2457,7 +2452,6 @@ static void raid1d(struct md_thread *thread)
blk_finish_plug(&plug); blk_finish_plug(&plug);
} }
static int init_resync(struct r1conf *conf) static int init_resync(struct r1conf *conf)
{ {
int buffs; int buffs;

View File

@@ -90,7 +90,6 @@ struct r1conf {
*/ */
int recovery_disabled; int recovery_disabled;
/* poolinfo contains information about the content of the /* poolinfo contains information about the content of the
* mempools - it changes when the array grows or shrinks * mempools - it changes when the array grows or shrinks
*/ */
@@ -103,7 +102,6 @@ struct r1conf {
*/ */
struct page *tmppage; struct page *tmppage;
/* When taking over an array from a different personality, we store /* When taking over an array from a different personality, we store
* the new thread here until we fully activate the array. * the new thread here until we fully activate the array.
*/ */

View File

@@ -366,7 +366,6 @@ static void raid10_end_read_request(struct bio *bio, int error)
struct md_rdev *rdev; struct md_rdev *rdev;
struct r10conf *conf = r10_bio->mddev->private; struct r10conf *conf = r10_bio->mddev->private;
slot = r10_bio->read_slot; slot = r10_bio->read_slot;
dev = r10_bio->devs[slot].devnum; dev = r10_bio->devs[slot].devnum;
rdev = r10_bio->devs[slot].rdev; rdev = r10_bio->devs[slot].rdev;
@@ -1559,7 +1558,6 @@ static void make_request(struct mddev *mddev, struct bio *bio)
md_write_start(mddev, bio); md_write_start(mddev, bio);
do { do {
/* /*
@@ -1782,7 +1780,6 @@ static int raid10_spare_active(struct mddev *mddev)
return count; return count;
} }
static int raid10_add_disk(struct mddev *mddev, struct md_rdev *rdev) static int raid10_add_disk(struct mddev *mddev, struct md_rdev *rdev)
{ {
struct r10conf *conf = mddev->private; struct r10conf *conf = mddev->private;
@@ -1929,7 +1926,6 @@ abort:
return err; return err;
} }
static void end_sync_read(struct bio *bio, int error) static void end_sync_read(struct bio *bio, int error)
{ {
struct r10bio *r10_bio = bio->bi_private; struct r10bio *r10_bio = bio->bi_private;
@@ -2295,7 +2291,6 @@ static void recovery_request_write(struct mddev *mddev, struct r10bio *r10_bio)
} }
} }
/* /*
* Used by fix_read_error() to decay the per rdev read_errors. * Used by fix_read_error() to decay the per rdev read_errors.
* We halve the read error count for every hour that has elapsed * We halve the read error count for every hour that has elapsed
@@ -2852,7 +2847,6 @@ static void raid10d(struct md_thread *thread)
blk_finish_plug(&plug); blk_finish_plug(&plug);
} }
static int init_resync(struct r10conf *conf) static int init_resync(struct r10conf *conf)
{ {
int buffs; int buffs;
@@ -3776,7 +3770,6 @@ static int run(struct mddev *mddev)
blk_queue_merge_bvec(mddev->queue, raid10_mergeable_bvec); blk_queue_merge_bvec(mddev->queue, raid10_mergeable_bvec);
} }
if (md_integrity_register(mddev)) if (md_integrity_register(mddev))
goto out_free_conf; goto out_free_conf;
@@ -4577,7 +4570,6 @@ static void end_reshape(struct r10conf *conf)
conf->fullsync = 0; conf->fullsync = 0;
} }
static int handle_reshape_read_error(struct mddev *mddev, static int handle_reshape_read_error(struct mddev *mddev,
struct r10bio *r10_bio) struct r10bio *r10_bio)
{ {

View File

@@ -463,7 +463,6 @@ static inline void insert_hash(struct r5conf *conf, struct stripe_head *sh)
hlist_add_head(&sh->hash, hp); hlist_add_head(&sh->hash, hp);
} }
/* find an idle stripe, make sure it is unhashed, and return it. */ /* find an idle stripe, make sure it is unhashed, and return it. */
static struct stripe_head *get_free_stripe(struct r5conf *conf, int hash) static struct stripe_head *get_free_stripe(struct r5conf *conf, int hash)
{ {
@@ -540,7 +539,6 @@ retry:
stripe_set_idx(sector, conf, previous, sh); stripe_set_idx(sector, conf, previous, sh);
sh->state = 0; sh->state = 0;
for (i = sh->disks; i--; ) { for (i = sh->disks; i--; ) {
struct r5dev *dev = &sh->dev[i]; struct r5dev *dev = &sh->dev[i];
@@ -1348,7 +1346,6 @@ ops_run_compute6_2(struct stripe_head *sh, struct raid5_percpu *percpu)
} }
} }
static void ops_complete_prexor(void *stripe_head_ref) static void ops_complete_prexor(void *stripe_head_ref)
{ {
struct stripe_head *sh = stripe_head_ref; struct stripe_head *sh = stripe_head_ref;
@@ -2417,7 +2414,6 @@ static sector_t raid5_compute_sector(struct r5conf *conf, sector_t r_sector,
return new_sector; return new_sector;
} }
static sector_t compute_blocknr(struct stripe_head *sh, int i, int previous) static sector_t compute_blocknr(struct stripe_head *sh, int i, int previous)
{ {
struct r5conf *conf = sh->raid_conf; struct r5conf *conf = sh->raid_conf;
@@ -2435,7 +2431,6 @@ static sector_t compute_blocknr(struct stripe_head *sh, int i, int previous)
sector_t r_sector; sector_t r_sector;
struct stripe_head sh2; struct stripe_head sh2;
chunk_offset = sector_div(new_sector, sectors_per_chunk); chunk_offset = sector_div(new_sector, sectors_per_chunk);
stripe = new_sector; stripe = new_sector;
@@ -2539,7 +2534,6 @@ static sector_t compute_blocknr(struct stripe_head *sh, int i, int previous)
return r_sector; return r_sector;
} }
static void static void
schedule_reconstruction(struct stripe_head *sh, struct stripe_head_state *s, schedule_reconstruction(struct stripe_head *sh, struct stripe_head_state *s,
int rcw, int expand) int rcw, int expand)
@@ -3011,7 +3005,6 @@ static void handle_stripe_fill(struct stripe_head *sh,
set_bit(STRIPE_HANDLE, &sh->state); set_bit(STRIPE_HANDLE, &sh->state);
} }
/* handle_stripe_clean_event /* handle_stripe_clean_event
* any written block on an uptodate or failed drive can be returned. * any written block on an uptodate or failed drive can be returned.
* Note that if we 'wrote' to a failed drive, it will be UPTODATE, but * Note that if we 'wrote' to a failed drive, it will be UPTODATE, but
@@ -3302,7 +3295,6 @@ static void handle_parity_checks5(struct r5conf *conf, struct stripe_head *sh,
} }
} }
static void handle_parity_checks6(struct r5conf *conf, struct stripe_head *sh, static void handle_parity_checks6(struct r5conf *conf, struct stripe_head *sh,
struct stripe_head_state *s, struct stripe_head_state *s,
int disks) int disks)
@@ -3937,7 +3929,6 @@ static void handle_stripe(struct stripe_head *sh)
} }
} }
/* Finish reconstruct operations initiated by the expansion process */ /* Finish reconstruct operations initiated by the expansion process */
if (sh->reconstruct_state == reconstruct_state_result) { if (sh->reconstruct_state == reconstruct_state_result) {
struct stripe_head *sh_src struct stripe_head *sh_src
@@ -4135,7 +4126,6 @@ static int raid5_mergeable_bvec(struct request_queue *q,
return max; return max;
} }
static int in_chunk_boundary(struct mddev *mddev, struct bio *bio) static int in_chunk_boundary(struct mddev *mddev, struct bio *bio)
{ {
sector_t sector = bio->bi_iter.bi_sector + get_start_sect(bio->bi_bdev); sector_t sector = bio->bi_iter.bi_sector + get_start_sect(bio->bi_bdev);
@@ -4165,7 +4155,6 @@ static void add_bio_to_retry(struct bio *bi,struct r5conf *conf)
md_wakeup_thread(conf->mddev->thread); md_wakeup_thread(conf->mddev->thread);
} }
static struct bio *remove_bio_from_retry(struct r5conf *conf) static struct bio *remove_bio_from_retry(struct r5conf *conf)
{ {
struct bio *bi; struct bio *bi;
@@ -4189,7 +4178,6 @@ static struct bio *remove_bio_from_retry(struct r5conf *conf)
return bi; return bi;
} }
/* /*
* The "raid5_align_endio" should check if the read succeeded and if it * The "raid5_align_endio" should check if the read succeeded and if it
* did, call bio_endio on the original bio (having bio_put the new bio * did, call bio_endio on the original bio (having bio_put the new bio
@@ -4222,7 +4210,6 @@ static void raid5_align_endio(struct bio *bi, int error)
return; return;
} }
pr_debug("raid5_align_endio : io error...handing IO for a retry\n"); pr_debug("raid5_align_endio : io error...handing IO for a retry\n");
add_bio_to_retry(raid_bi, conf); add_bio_to_retry(raid_bi, conf);
@@ -4247,7 +4234,6 @@ static int bio_fits_rdev(struct bio *bi)
return 1; return 1;
} }
static int chunk_aligned_read(struct mddev *mddev, struct bio * raid_bio) static int chunk_aligned_read(struct mddev *mddev, struct bio * raid_bio)
{ {
struct r5conf *conf = mddev->private; struct r5conf *conf = mddev->private;
@@ -5444,7 +5430,6 @@ raid5_skip_copy = __ATTR(skip_copy, S_IRUGO | S_IWUSR,
raid5_show_skip_copy, raid5_show_skip_copy,
raid5_store_skip_copy); raid5_store_skip_copy);
static ssize_t static ssize_t
stripe_cache_active_show(struct mddev *mddev, char *page) stripe_cache_active_show(struct mddev *mddev, char *page)
{ {
@@ -5896,7 +5881,6 @@ static struct r5conf *setup_conf(struct mddev *mddev)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
static int only_parity(int raid_disk, int algo, int raid_disks, int max_degraded) static int only_parity(int raid_disk, int algo, int raid_disks, int max_degraded)
{ {
switch (algo) { switch (algo) {
@@ -6163,7 +6147,6 @@ static int run(struct mddev *mddev)
"reshape"); "reshape");
} }
/* Ok, everything is just fine now */ /* Ok, everything is just fine now */
if (mddev->to_remove == &raid5_attrs_group) if (mddev->to_remove == &raid5_attrs_group)
mddev->to_remove = NULL; mddev->to_remove = NULL;
@@ -6812,7 +6795,6 @@ static void raid5_quiesce(struct mddev *mddev, int state)
} }
} }
static void *raid45_takeover_raid0(struct mddev *mddev, int level) static void *raid45_takeover_raid0(struct mddev *mddev, int level)
{ {
struct r0conf *raid0_conf = mddev->private; struct r0conf *raid0_conf = mddev->private;
@@ -6839,7 +6821,6 @@ static void *raid45_takeover_raid0(struct mddev *mddev, int level)
return setup_conf(mddev); return setup_conf(mddev);
} }
static void *raid5_takeover_raid1(struct mddev *mddev) static void *raid5_takeover_raid1(struct mddev *mddev)
{ {
int chunksect; int chunksect;
@@ -6900,7 +6881,6 @@ static void *raid5_takeover_raid6(struct mddev *mddev)
return setup_conf(mddev); return setup_conf(mddev);
} }
static int raid5_check_reshape(struct mddev *mddev) static int raid5_check_reshape(struct mddev *mddev)
{ {
/* For a 2-drive array, the layout and chunk size can be changed /* For a 2-drive array, the layout and chunk size can be changed
@@ -7049,7 +7029,6 @@ static void *raid6_takeover(struct mddev *mddev)
return setup_conf(mddev); return setup_conf(mddev);
} }
static struct md_personality raid6_personality = static struct md_personality raid6_personality =
{ {
.name = "raid6", .name = "raid6",

View File

@@ -364,7 +364,6 @@ enum {
* HANDLE gets cleared if stripe_handle leaves nothing locked. * HANDLE gets cleared if stripe_handle leaves nothing locked.
*/ */
struct disk_info { struct disk_info {
struct md_rdev *rdev, *replacement; struct md_rdev *rdev, *replacement;
}; };
@@ -528,7 +527,6 @@ struct r5conf {
#define ALGORITHM_ROTATING_N_RESTART 9 /* DDF PRL=6 RLQ=2 */ #define ALGORITHM_ROTATING_N_RESTART 9 /* DDF PRL=6 RLQ=2 */
#define ALGORITHM_ROTATING_N_CONTINUE 10 /*DDF PRL=6 RLQ=3 */ #define ALGORITHM_ROTATING_N_CONTINUE 10 /*DDF PRL=6 RLQ=3 */
/* For every RAID5 algorithm we define a RAID6 algorithm /* For every RAID5 algorithm we define a RAID6 algorithm
* with exactly the same layout for data and parity, and * with exactly the same layout for data and parity, and
* with the Q block always on the last device (N-1). * with the Q block always on the last device (N-1).