Lines Matching refs:layout
365 static bool __is_raid10_far(int layout);
464 static unsigned int __raid10_near_copies(int layout) in __raid10_near_copies() argument
466 return layout & 0xFF; in __raid10_near_copies()
470 static unsigned int __raid10_far_copies(int layout) in __raid10_far_copies() argument
472 return __raid10_near_copies(layout >> RAID10_FAR_COPIES_SHIFT); in __raid10_far_copies()
476 static bool __is_raid10_offset(int layout) in __is_raid10_offset() argument
478 return !!(layout & RAID10_OFFSET); in __is_raid10_offset()
482 static bool __is_raid10_near(int layout) in __is_raid10_near() argument
484 return !__is_raid10_offset(layout) && __raid10_near_copies(layout) > 1; in __is_raid10_near()
488 static bool __is_raid10_far(int layout) in __is_raid10_far() argument
490 return !__is_raid10_offset(layout) && __raid10_far_copies(layout) > 1; in __is_raid10_far()
494 static const char *raid10_md_layout_to_format(int layout) in raid10_md_layout_to_format() argument
502 if (__is_raid10_offset(layout)) in raid10_md_layout_to_format()
505 if (__raid10_near_copies(layout) > 1) in raid10_md_layout_to_format()
508 WARN_ON(__raid10_far_copies(layout) < 2); in raid10_md_layout_to_format()
527 static unsigned int raid10_md_layout_to_copies(int layout) in raid10_md_layout_to_copies() argument
529 return max(__raid10_near_copies(layout), __raid10_far_copies(layout)); in raid10_md_layout_to_copies()
571 static bool __got_raid10(struct raid_type *rtp, const int layout) in __got_raid10() argument
577 return __is_raid10_near(layout); in __got_raid10()
579 return __is_raid10_offset(layout); in __got_raid10()
581 return __is_raid10_far(layout); in __got_raid10()
603 static struct raid_type *get_raid_type_by_ll(const int level, const int layout) in get_raid_type_by_ll() argument
610 (__got_raid10(rtp, layout) || rtp->algorithm == layout)) in get_raid_type_by_ll()
647 mddev->new_layout = mddev->layout; in rs_set_cur()
660 mddev->layout = mddev->new_layout; in rs_set_new()
694 rs->md.layout = raid_type->algorithm; in raid_set_alloc()
695 rs->md.new_layout = rs->md.layout; in raid_set_alloc()
1582 if (__is_raid10_offset(mddev->layout)) in rs_check_takeover()
1585 near_copies = __raid10_near_copies(mddev->layout); in rs_check_takeover()
1599 __raid10_far_copies(mddev->layout) > 1) in rs_check_takeover()
1607 max(near_copies, __raid10_far_copies(mddev->layout)) == mddev->raid_disks) in rs_check_takeover()
1646 mddev->layout == ALGORITHM_PARITY_N) in rs_check_takeover()
1653 mddev->layout == ALGORITHM_PARITY_N) in rs_check_takeover()
1658 mddev->layout == ALGORITHM_PARITY_N) in rs_check_takeover()
1668 ((mddev->layout == ALGORITHM_PARITY_N && mddev->new_layout == ALGORITHM_PARITY_N) || in rs_check_takeover()
1676 mddev->layout == ALGORITHM_PARITY_N) in rs_check_takeover()
1681 mddev->layout == ALGORITHM_PARITY_N) in rs_check_takeover()
1686 ((mddev->layout == ALGORITHM_PARITY_N && mddev->new_layout == ALGORITHM_PARITY_N) || in rs_check_takeover()
1716 change = mddev->new_layout != mddev->layout || in rs_reshape_requested()
1776 __le32 layout; member
1941 sb->layout = cpu_to_le32(mddev->layout); in super_sync()
2061 mddev->layout = le32_to_cpu(sb->layout); in super_init_validation()
2083 rs->raid_type = get_raid_type_by_ll(mddev->level, mddev->layout); in super_init_validation()
2094 if (le32_to_cpu(sb->layout) != mddev->new_layout) { in super_init_validation()
2096 DMERR(" 0x%X vs 0x%X", le32_to_cpu(sb->layout), mddev->layout); in super_init_validation()
2098 raid10_md_layout_to_format(le32_to_cpu(sb->layout)), in super_init_validation()
2099 raid10_md_layout_to_copies(le32_to_cpu(sb->layout))); in super_init_validation()
2101 raid10_md_layout_to_format(mddev->layout), in super_init_validation()
2102 raid10_md_layout_to_copies(mddev->layout)); in super_init_validation()
2214 if (__is_raid10_near(mddev->layout)) { in super_init_validation()
2215 if (mddev->raid_disks % __raid10_near_copies(mddev->layout) || in super_init_validation()
2523 mddev->layout = raid10_format_to_md_layout(rs, ALGORITHM_RAID10_FAR, in rs_setup_takeover()
2527 mddev->layout = raid10_format_to_md_layout(rs, ALGORITHM_RAID10_NEAR, in rs_setup_takeover()
2562 __is_raid10_near(mddev->layout) && in rs_prepare_reshape()
2564 rs->raid10_copies != __raid10_near_copies(mddev->layout)) { in rs_prepare_reshape()
2578 mddev->layout = raid10_format_to_md_layout(rs, ALGORITHM_RAID10_NEAR, in rs_prepare_reshape()
2580 mddev->new_layout = mddev->layout; in rs_prepare_reshape()
2632 mddev->layout != mddev->new_layout) { in rs_setup_reshape()
2634 mddev->new_layout = mddev->layout; in rs_setup_reshape()
3268 raid10_md_layout_to_format(mddev->layout)); in raid_status()
3271 raid10_md_layout_to_copies(mddev->layout)); in raid_status()