Skip to content

Commit 453496b

Browse files
mauelshaMikulas Patocka
authored andcommitted
dm raid: move _get_reshape_sectors() as prerequisite to fixing reshape size issues
rs_set_dev_and_array_sectors() needs this function to calculate device and array size properly in case leg data devices have out-of-place reshape space allocated. Signed-off-by: Heinz Mauelshagen <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
1 parent 6a6c561 commit 453496b

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

drivers/md/dm-raid.c

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1626,6 +1626,23 @@ static int _check_data_dev_sectors(struct raid_set *rs)
16261626
return 0;
16271627
}
16281628

1629+
/* Get reshape sectors from data_offsets or raid set */
1630+
static sector_t _get_reshape_sectors(struct raid_set *rs)
1631+
{
1632+
struct md_rdev *rdev;
1633+
sector_t reshape_sectors = 0;
1634+
1635+
rdev_for_each(rdev, &rs->md)
1636+
if (!test_bit(Journal, &rdev->flags)) {
1637+
reshape_sectors = (rdev->data_offset > rdev->new_data_offset) ?
1638+
rdev->data_offset - rdev->new_data_offset :
1639+
rdev->new_data_offset - rdev->data_offset;
1640+
break;
1641+
}
1642+
1643+
return max(reshape_sectors, (sector_t) rs->data_offset);
1644+
}
1645+
16291646
/* Calculate the sectors per device and per array used for @rs */
16301647
static int rs_set_dev_and_array_sectors(struct raid_set *rs, sector_t sectors, bool use_mddev)
16311648
{
@@ -2811,23 +2828,6 @@ static int rs_prepare_reshape(struct raid_set *rs)
28112828
return 0;
28122829
}
28132830

2814-
/* Get reshape sectors from data_offsets or raid set */
2815-
static sector_t _get_reshape_sectors(struct raid_set *rs)
2816-
{
2817-
struct md_rdev *rdev;
2818-
sector_t reshape_sectors = 0;
2819-
2820-
rdev_for_each(rdev, &rs->md)
2821-
if (!test_bit(Journal, &rdev->flags)) {
2822-
reshape_sectors = (rdev->data_offset > rdev->new_data_offset) ?
2823-
rdev->data_offset - rdev->new_data_offset :
2824-
rdev->new_data_offset - rdev->data_offset;
2825-
break;
2826-
}
2827-
2828-
return max(reshape_sectors, (sector_t) rs->data_offset);
2829-
}
2830-
28312831
/*
28322832
* Reshape:
28332833
* - change raid layout

0 commit comments

Comments
 (0)