Loading drivers/md/dm-raid.c +14 −15 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,7 @@ struct raid_dev { #define __CTR_FLAG_RAID10_COPIES 10 /* 2 */ /* Only with raid10 */ #define __CTR_FLAG_RAID10_COPIES 10 /* 2 */ /* Only with raid10 */ #define __CTR_FLAG_RAID10_FORMAT 11 /* 2 */ /* Only with raid10 */ #define __CTR_FLAG_RAID10_FORMAT 11 /* 2 */ /* Only with raid10 */ /* New for v1.9.0 */ /* New for v1.9.0 */ #define __CTR_FLAG_DELTA_DISKS 12 /* 2 */ /* Only with reshapable raid4/5/6/10! */ #define __CTR_FLAG_DELTA_DISKS 12 /* 2 */ /* Only with reshapable raid1/4/5/6/10! */ #define __CTR_FLAG_DATA_OFFSET 13 /* 2 */ /* Only with reshapable raid4/5/6/10! */ #define __CTR_FLAG_DATA_OFFSET 13 /* 2 */ /* Only with reshapable raid4/5/6/10! */ #define __CTR_FLAG_RAID10_USE_NEAR_SETS 14 /* 2 */ /* Only with raid10! */ #define __CTR_FLAG_RAID10_USE_NEAR_SETS 14 /* 2 */ /* Only with raid10! */ Loading Loading @@ -193,7 +193,7 @@ struct raid_dev { #define RT_FLAG_RESHAPE_RS 4 #define RT_FLAG_RESHAPE_RS 4 #define RT_FLAG_KEEP_RS_FROZEN 5 #define RT_FLAG_KEEP_RS_FROZEN 5 /* Array elements of 64 bit needed for rebuild/write_mostly bits */ /* Array elements of 64 bit needed for rebuild/failed disk bits */ #define DISKS_ARRAY_ELEMS ((MAX_RAID_DEVICES + (sizeof(uint64_t) * 8 - 1)) / sizeof(uint64_t) / 8) #define DISKS_ARRAY_ELEMS ((MAX_RAID_DEVICES + (sizeof(uint64_t) * 8 - 1)) / sizeof(uint64_t) / 8) /* /* Loading Loading @@ -328,8 +328,8 @@ static const char *dm_raid_arg_name_by_flag(const uint32_t flag) } } /* /* * bool helpers to test for various raid levels of a raid set, * Bool helpers to test for various raid levels of a raid set. * is. it's level as reported by the superblock rather than * It's level as reported by the superblock rather than * the requested raid_type passed to the constructor. * the requested raid_type passed to the constructor. */ */ /* Return true, if raid set in @rs is raid0 */ /* Return true, if raid set in @rs is raid0 */ Loading Loading @@ -363,7 +363,7 @@ static bool rs_is_raid456(struct raid_set *rs) } } /* Return true, if raid set in @rs is reshapable */ /* Return true, if raid set in @rs is reshapable */ static unsigned int __is_raid10_far(int layout); static bool __is_raid10_far(int layout); static bool rs_is_reshapable(struct raid_set *rs) static bool rs_is_reshapable(struct raid_set *rs) { { return rs_is_raid456(rs) || return rs_is_raid456(rs) || Loading @@ -383,7 +383,7 @@ static bool rs_is_reshaping(struct raid_set *rs) } } /* /* * bool helpers to test for various raid levels of a raid type * bool helpers to test for various raid levels of a raid type @rt */ */ /* Return true, if raid type in @rt is raid0 */ /* Return true, if raid type in @rt is raid0 */ Loading Loading @@ -437,7 +437,7 @@ static unsigned long __valid_flags(struct raid_set *rs) else if (rt_is_raid6(rs->raid_type)) else if (rt_is_raid6(rs->raid_type)) return RAID6_VALID_FLAGS; return RAID6_VALID_FLAGS; return ~0; return 0; } } /* /* Loading Loading @@ -474,19 +474,19 @@ static unsigned int __raid10_far_copies(int layout) } } /* Return true if md raid10 offset for @layout */ /* Return true if md raid10 offset for @layout */ static unsigned int __is_raid10_offset(int layout) static bool __is_raid10_offset(int layout) { { return layout & RAID10_OFFSET; return !!(layout & RAID10_OFFSET); } } /* Return true if md raid10 near for @layout */ /* Return true if md raid10 near for @layout */ static unsigned int __is_raid10_near(int layout) static bool __is_raid10_near(int layout) { { return !__is_raid10_offset(layout) && __raid10_near_copies(layout) > 1; return !__is_raid10_offset(layout) && __raid10_near_copies(layout) > 1; } } /* Return true if md raid10 far for @layout */ /* Return true if md raid10 far for @layout */ static unsigned int __is_raid10_far(int layout) static bool __is_raid10_far(int layout) { { return !__is_raid10_offset(layout) && __raid10_far_copies(layout) > 1; return !__is_raid10_offset(layout) && __raid10_far_copies(layout) > 1; } } Loading Loading @@ -527,8 +527,7 @@ static int raid10_name_to_format(const char *name) /* Return md raid10 copies for @layout */ /* Return md raid10 copies for @layout */ static unsigned int raid10_md_layout_to_copies(int layout) static unsigned int raid10_md_layout_to_copies(int layout) { { return __raid10_near_copies(layout) > 1 ? return max(__raid10_near_copies(layout), __raid10_far_copies(layout)); __raid10_near_copies(layout) : __raid10_far_copies(layout); } } /* Return md raid10 format id for @format string */ /* Return md raid10 format id for @format string */ Loading Loading @@ -570,7 +569,7 @@ static int raid10_format_to_md_layout(struct raid_set *rs, /* END: MD raid10 bit definitions and helpers */ /* END: MD raid10 bit definitions and helpers */ /* Check for any of the raid10 algorithms */ /* Check for any of the raid10 algorithms */ static int __got_raid10(struct raid_type *rtp, const int layout) static bool __got_raid10(struct raid_type *rtp, const int layout) { { if (rtp->level == 10) { if (rtp->level == 10) { switch (rtp->algorithm) { switch (rtp->algorithm) { Loading @@ -586,7 +585,7 @@ static int __got_raid10(struct raid_type *rtp, const int layout) } } } } return 0; return false; } } /* Return raid_type for @name */ /* Return raid_type for @name */ Loading Loading
drivers/md/dm-raid.c +14 −15 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,7 @@ struct raid_dev { #define __CTR_FLAG_RAID10_COPIES 10 /* 2 */ /* Only with raid10 */ #define __CTR_FLAG_RAID10_COPIES 10 /* 2 */ /* Only with raid10 */ #define __CTR_FLAG_RAID10_FORMAT 11 /* 2 */ /* Only with raid10 */ #define __CTR_FLAG_RAID10_FORMAT 11 /* 2 */ /* Only with raid10 */ /* New for v1.9.0 */ /* New for v1.9.0 */ #define __CTR_FLAG_DELTA_DISKS 12 /* 2 */ /* Only with reshapable raid4/5/6/10! */ #define __CTR_FLAG_DELTA_DISKS 12 /* 2 */ /* Only with reshapable raid1/4/5/6/10! */ #define __CTR_FLAG_DATA_OFFSET 13 /* 2 */ /* Only with reshapable raid4/5/6/10! */ #define __CTR_FLAG_DATA_OFFSET 13 /* 2 */ /* Only with reshapable raid4/5/6/10! */ #define __CTR_FLAG_RAID10_USE_NEAR_SETS 14 /* 2 */ /* Only with raid10! */ #define __CTR_FLAG_RAID10_USE_NEAR_SETS 14 /* 2 */ /* Only with raid10! */ Loading Loading @@ -193,7 +193,7 @@ struct raid_dev { #define RT_FLAG_RESHAPE_RS 4 #define RT_FLAG_RESHAPE_RS 4 #define RT_FLAG_KEEP_RS_FROZEN 5 #define RT_FLAG_KEEP_RS_FROZEN 5 /* Array elements of 64 bit needed for rebuild/write_mostly bits */ /* Array elements of 64 bit needed for rebuild/failed disk bits */ #define DISKS_ARRAY_ELEMS ((MAX_RAID_DEVICES + (sizeof(uint64_t) * 8 - 1)) / sizeof(uint64_t) / 8) #define DISKS_ARRAY_ELEMS ((MAX_RAID_DEVICES + (sizeof(uint64_t) * 8 - 1)) / sizeof(uint64_t) / 8) /* /* Loading Loading @@ -328,8 +328,8 @@ static const char *dm_raid_arg_name_by_flag(const uint32_t flag) } } /* /* * bool helpers to test for various raid levels of a raid set, * Bool helpers to test for various raid levels of a raid set. * is. it's level as reported by the superblock rather than * It's level as reported by the superblock rather than * the requested raid_type passed to the constructor. * the requested raid_type passed to the constructor. */ */ /* Return true, if raid set in @rs is raid0 */ /* Return true, if raid set in @rs is raid0 */ Loading Loading @@ -363,7 +363,7 @@ static bool rs_is_raid456(struct raid_set *rs) } } /* Return true, if raid set in @rs is reshapable */ /* Return true, if raid set in @rs is reshapable */ static unsigned int __is_raid10_far(int layout); static bool __is_raid10_far(int layout); static bool rs_is_reshapable(struct raid_set *rs) static bool rs_is_reshapable(struct raid_set *rs) { { return rs_is_raid456(rs) || return rs_is_raid456(rs) || Loading @@ -383,7 +383,7 @@ static bool rs_is_reshaping(struct raid_set *rs) } } /* /* * bool helpers to test for various raid levels of a raid type * bool helpers to test for various raid levels of a raid type @rt */ */ /* Return true, if raid type in @rt is raid0 */ /* Return true, if raid type in @rt is raid0 */ Loading Loading @@ -437,7 +437,7 @@ static unsigned long __valid_flags(struct raid_set *rs) else if (rt_is_raid6(rs->raid_type)) else if (rt_is_raid6(rs->raid_type)) return RAID6_VALID_FLAGS; return RAID6_VALID_FLAGS; return ~0; return 0; } } /* /* Loading Loading @@ -474,19 +474,19 @@ static unsigned int __raid10_far_copies(int layout) } } /* Return true if md raid10 offset for @layout */ /* Return true if md raid10 offset for @layout */ static unsigned int __is_raid10_offset(int layout) static bool __is_raid10_offset(int layout) { { return layout & RAID10_OFFSET; return !!(layout & RAID10_OFFSET); } } /* Return true if md raid10 near for @layout */ /* Return true if md raid10 near for @layout */ static unsigned int __is_raid10_near(int layout) static bool __is_raid10_near(int layout) { { return !__is_raid10_offset(layout) && __raid10_near_copies(layout) > 1; return !__is_raid10_offset(layout) && __raid10_near_copies(layout) > 1; } } /* Return true if md raid10 far for @layout */ /* Return true if md raid10 far for @layout */ static unsigned int __is_raid10_far(int layout) static bool __is_raid10_far(int layout) { { return !__is_raid10_offset(layout) && __raid10_far_copies(layout) > 1; return !__is_raid10_offset(layout) && __raid10_far_copies(layout) > 1; } } Loading Loading @@ -527,8 +527,7 @@ static int raid10_name_to_format(const char *name) /* Return md raid10 copies for @layout */ /* Return md raid10 copies for @layout */ static unsigned int raid10_md_layout_to_copies(int layout) static unsigned int raid10_md_layout_to_copies(int layout) { { return __raid10_near_copies(layout) > 1 ? return max(__raid10_near_copies(layout), __raid10_far_copies(layout)); __raid10_near_copies(layout) : __raid10_far_copies(layout); } } /* Return md raid10 format id for @format string */ /* Return md raid10 format id for @format string */ Loading Loading @@ -570,7 +569,7 @@ static int raid10_format_to_md_layout(struct raid_set *rs, /* END: MD raid10 bit definitions and helpers */ /* END: MD raid10 bit definitions and helpers */ /* Check for any of the raid10 algorithms */ /* Check for any of the raid10 algorithms */ static int __got_raid10(struct raid_type *rtp, const int layout) static bool __got_raid10(struct raid_type *rtp, const int layout) { { if (rtp->level == 10) { if (rtp->level == 10) { switch (rtp->algorithm) { switch (rtp->algorithm) { Loading @@ -586,7 +585,7 @@ static int __got_raid10(struct raid_type *rtp, const int layout) } } } } return 0; return false; } } /* Return raid_type for @name */ /* Return raid_type for @name */ Loading