mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 18:30:06 +00:00
btrfs: raid56: simplify sort_parity_stripes
Remove trivial comprator and open coded swap of two values. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
7e8f19e50e
commit
eeb6f17200
1 changed files with 4 additions and 16 deletions
|
@ -5353,31 +5353,19 @@ static int find_live_mirror(struct btrfs_fs_info *fs_info,
|
|||
return preferred_mirror;
|
||||
}
|
||||
|
||||
static inline int parity_smaller(u64 a, u64 b)
|
||||
{
|
||||
return a > b;
|
||||
}
|
||||
|
||||
/* Bubble-sort the stripe set to put the parity/syndrome stripes last */
|
||||
static void sort_parity_stripes(struct btrfs_bio *bbio, int num_stripes)
|
||||
{
|
||||
struct btrfs_bio_stripe s;
|
||||
int i;
|
||||
u64 l;
|
||||
int again = 1;
|
||||
|
||||
while (again) {
|
||||
again = 0;
|
||||
for (i = 0; i < num_stripes - 1; i++) {
|
||||
if (parity_smaller(bbio->raid_map[i],
|
||||
bbio->raid_map[i+1])) {
|
||||
s = bbio->stripes[i];
|
||||
l = bbio->raid_map[i];
|
||||
bbio->stripes[i] = bbio->stripes[i+1];
|
||||
bbio->raid_map[i] = bbio->raid_map[i+1];
|
||||
bbio->stripes[i+1] = s;
|
||||
bbio->raid_map[i+1] = l;
|
||||
|
||||
/* Swap if parity is on a smaller index */
|
||||
if (bbio->raid_map[i] > bbio->raid_map[i + 1]) {
|
||||
swap(bbio->stripes[i], bbio->stripes[i + 1]);
|
||||
swap(bbio->raid_map[i], bbio->raid_map[i + 1]);
|
||||
again = 1;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue