lkml.org 
[lkml]   [2019]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4.19 108/114] Revert "Dont jump to compute_result state from check_result state"
    On Thu 2019-05-23 21:06:47, Greg Kroah-Hartman wrote:
    > From: Song Liu <songliubraving@fb.com>
    >
    > commit a25d8c327bb41742dbd59f8c545f59f3b9c39983 upstream.
    >
    > This reverts commit 4f4fd7c5798bbdd5a03a60f6269cf1177fbd11ef.
    >
    > Cc: Dan Williams <dan.j.williams@intel.com>
    > Cc: Nigel Croxon <ncroxon@redhat.com>
    > Cc: Xiao Ni <xni@redhat.com>
    > Signed-off-by: Song Liu <songliubraving@fb.com>
    > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    We normally reject patches without changelog, and this has none. Why
    make exception here?

    Pavel

    >
    > ---
    > drivers/md/raid5.c | 19 +++++++++++++++----
    > 1 file changed, 15 insertions(+), 4 deletions(-)
    >
    > --- a/drivers/md/raid5.c
    > +++ b/drivers/md/raid5.c
    > @@ -4221,15 +4221,26 @@ static void handle_parity_checks6(struct
    > case check_state_check_result:
    > sh->check_state = check_state_idle;
    >
    > - if (s->failed > 1)
    > - break;
    > /* handle a successful check operation, if parity is correct
    > * we are done. Otherwise update the mismatch count and repair
    > * parity if !MD_RECOVERY_CHECK
    > */
    > if (sh->ops.zero_sum_result == 0) {
    > - /* Any parity checked was correct */
    > - set_bit(STRIPE_INSYNC, &sh->state);
    > + /* both parities are correct */
    > + if (!s->failed)
    > + set_bit(STRIPE_INSYNC, &sh->state);
    > + else {
    > + /* in contrast to the raid5 case we can validate
    > + * parity, but still have a failure to write
    > + * back
    > + */
    > + sh->check_state = check_state_compute_result;
    > + /* Returning at this point means that we may go
    > + * off and bring p and/or q uptodate again so
    > + * we make sure to check zero_sum_result again
    > + * to verify if p or q need writeback
    > + */
    > + }
    > } else {
    > atomic64_add(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
    > if (test_bit(MD_RECOVERY_CHECK, &conf->mddev->recovery)) {
    >

    --
    (english) http://www.livejournal.com/~pavelmachek
    (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

    \
     
     \ /
      Last update: 2019-05-25 14:10    [W:3.212 / U:0.696 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site