Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp923111ybi; Fri, 26 Jul 2019 22:58:22 -0700 (PDT) X-Google-Smtp-Source: APXvYqxznuXQE7XwJDRbyvfOHpnVOcVe6sTpTQukONuSKHQ77TKf7bSsb4zpFvq1Sz7Rt2K/yo+R X-Received: by 2002:aa7:9aaf:: with SMTP id x15mr26657634pfi.214.1564207102354; Fri, 26 Jul 2019 22:58:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564207102; cv=none; d=google.com; s=arc-20160816; b=JrIUNVYcLneWtHSwDJu/ypZVZZxfZkdGFZJKHkv29ecqZ4VH/xX+XhfYZ8eLnm07fU n70yA1ksbHIwCnuiRodPTaBFZSVWh5BcwsG3C5Qk/RxkYaOfl9xhAz7EeTqHcTyy6QQx wB3YDNXgPdhEHamFUx9L+bwXMJXqzPBDlDfiFgOkVR/ok1fTH10L+0ru+ANiwIla+RFq 03JkbcC9QcWRJEJR62qWg03fbvBXicN9By8uk5x2wVpTEA8dZ2Iv5yvClxJwoxJ8b9ij Nh6h6ozFomJScACjRJ5ZKs4Lg6/VwVXNhKvQyEVya3BXdLFZ7Xn96mNycUReCSwQoy7L IErw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=F+bmpULAzPZqQ+VfsYVwA0yzcv7oTAtr92PzmJPiUZE=; b=n2If4ZnkdpvaV5FGGAyNloLQisTkKUjntwoRQQ2bSWAeLIHgACC9I+FndR/1P87IUs cqhqO9ixkWrqA7rO8D1FznR3h7AtDmulP9Ri1XQ+jIj8aoCbVr2Napan5nQIObkgK8WL 6Y3cCKUTrCYBU2uKaWERO2m+Hd7hRR4UVOcVnYUajHwJB0A6cOavGMdYfP587LmLwekp qzxibE6Pf/Ezn2RK4WVWWTJBK4QU/098xV5I79krFtnI32BHLKYV9eRhI2CT+0IvX1Ed v/y/P7jDYNZv+gFwQOBZdpD1pg1BAMo3I2Mhbot/dALGre0oKQv155c7jQkuP8oXKhUw m/fA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h16si18648507pjt.12.2019.07.26.22.58.07; Fri, 26 Jul 2019 22:58:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728910AbfG0F5K (ORCPT + 99 others); Sat, 27 Jul 2019 01:57:10 -0400 Received: from szxga06-in.huawei.com ([45.249.212.32]:48676 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728536AbfG0F5J (ORCPT ); Sat, 27 Jul 2019 01:57:09 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id D2016E93E39642FB5EE3; Sat, 27 Jul 2019 13:57:06 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.439.0; Sat, 27 Jul 2019 13:57:04 +0800 From: Hou Tao To: , CC: Subject: [PATCH] raid1: factor out a common routine to handle the completion of sync write Date: Sat, 27 Jul 2019 14:02:58 +0800 Message-ID: <20190727060258.63036-1-houtao1@huawei.com> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It's just code clean-up. Signed-off-by: Hou Tao --- drivers/md/raid1.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 1755d2233e4d..d73ed94764c1 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -1904,6 +1904,22 @@ static void abort_sync_write(struct mddev *mddev, struct r1bio *r1_bio) } while (sectors_to_go > 0); } +static void put_sync_write_buf(struct r1bio *r1_bio, int uptodate) +{ + if (atomic_dec_and_test(&r1_bio->remaining)) { + struct mddev *mddev = r1_bio->mddev; + int s = r1_bio->sectors; + + if (test_bit(R1BIO_MadeGood, &r1_bio->state) || + test_bit(R1BIO_WriteError, &r1_bio->state)) + reschedule_retry(r1_bio); + else { + put_buf(r1_bio); + md_done_sync(mddev, s, uptodate); + } + } +} + static void end_sync_write(struct bio *bio) { int uptodate = !bio->bi_status; @@ -1930,16 +1946,7 @@ static void end_sync_write(struct bio *bio) ) set_bit(R1BIO_MadeGood, &r1_bio->state); - if (atomic_dec_and_test(&r1_bio->remaining)) { - int s = r1_bio->sectors; - if (test_bit(R1BIO_MadeGood, &r1_bio->state) || - test_bit(R1BIO_WriteError, &r1_bio->state)) - reschedule_retry(r1_bio); - else { - put_buf(r1_bio); - md_done_sync(mddev, s, uptodate); - } - } + put_sync_write_buf(r1_bio, uptodate); } static int r1_sync_page_io(struct md_rdev *rdev, sector_t sector, @@ -2222,17 +2229,7 @@ static void sync_request_write(struct mddev *mddev, struct r1bio *r1_bio) generic_make_request(wbio); } - if (atomic_dec_and_test(&r1_bio->remaining)) { - /* if we're here, all write(s) have completed, so clean up */ - int s = r1_bio->sectors; - if (test_bit(R1BIO_MadeGood, &r1_bio->state) || - test_bit(R1BIO_WriteError, &r1_bio->state)) - reschedule_retry(r1_bio); - else { - put_buf(r1_bio); - md_done_sync(mddev, s, 1); - } - } + put_sync_write_buf(r1_bio, 1); } /* -- 2.22.0