Re: [PATCH] Fix reshape for decreasing data offset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/11/19 8:18 PM, bugfood-ml@xxxxxxxxxx wrote:
> From: Corey Hickey <bugfood-c@xxxxxxxxxx>
> 
> ...when not changing the number of disks.
> 
> This patch needs context to explain. These are the relevant parts of
> the original code (condensed and annotated):
> 
> if (dir > 0) {
>     /* Increase data offset (reshape backwards) */
>     if (data_offset < sd->data_offset + min) {
>         pr_err("--data-offset too small on %s\n",
>                dn);
>         goto release;
>     }
> } else {
>     /* Decrease data offset (reshape forwards) */
>     if (data_offset < sd->data_offset - min) {
>         pr_err("--data-offset too small on %s\n",
>                dn);
>         goto release;
>     }
> }
> 
> When this code is reached, mdadm has already decided on a reshape
> direction. When increasing the data offset, the reshape runs backwards
> (dir==1); when decreasing the data offset, the reshape runs forwards
> (dir==-1).
> 
> The conditional within the backwards reshape is correct: the requested
> offset must be larger than the old offset plus a minimum delta; thus the
> reshape has room to work.
> 
> For the forwards reshape, the requested offset needs to be smaller than
> the old offset minus a minimum delta; to do this correctly, the
> comparison must be reversed.
> 
> Also update the error message.
> 
> Note: I have tested this change on a RAID 5 on Linux 4.18.0 and verified
> that there were no errors from the kernel and that the device data
> remained intact. I do not know if there are considerations for different
> RAID levels.
> 
> Signed-off-by: Corey Hickey <bugfood-c@xxxxxxxxxx>
> ---
>  Grow.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Applied!

Thanks,
Jes




[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux