lkml.org 
[lkml]   [2017]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.14 117/135] raid5-ppl: check recovery_offset when performing ppl recovery
    Date
    From: Artur Paszkiewicz <artur.paszkiewicz@intel.com>

    [ Upstream commit 07719ff767dcd8cc42050f185d332052f3816546 ]

    If starting an array that is undergoing rebuild, make ppl recovery honor
    the recovery_offset of a member disk and don't read data that is not yet
    in-sync.

    Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    ---
    drivers/md/raid5-ppl.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/md/raid5-ppl.c b/drivers/md/raid5-ppl.c
    index cd026c88f7ef..702b76008886 100644
    --- a/drivers/md/raid5-ppl.c
    +++ b/drivers/md/raid5-ppl.c
    @@ -758,7 +758,8 @@ static int ppl_recover_entry(struct ppl_log *log, struct ppl_header_entry *e,
    (unsigned long long)sector);

    rdev = conf->disks[dd_idx].rdev;
    - if (!rdev) {
    + if (!rdev || (!test_bit(In_sync, &rdev->flags) &&
    + sector >= rdev->recovery_offset)) {
    pr_debug("%s:%*s data member disk %d missing\n",
    __func__, indent, "", dd_idx);
    update_parity = false;
    --
    2.11.0
    \
     
     \ /
      Last update: 2017-12-07 18:49    [W:4.027 / U:0.212 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site