From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D03E5C761A6 for ; Fri, 31 Mar 2023 18:14:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 51FF26B0082; Fri, 31 Mar 2023 14:14:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4CFBD6B0085; Fri, 31 Mar 2023 14:14:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3E5C76B0088; Fri, 31 Mar 2023 14:14:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 300C66B0082 for ; Fri, 31 Mar 2023 14:14:11 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id EDFB0803BB for ; Fri, 31 Mar 2023 18:14:10 +0000 (UTC) X-FDA: 80629992660.15.74173ED Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf21.hostedemail.com (Postfix) with ESMTP id E8AE31C0021 for ; Fri, 31 Mar 2023 18:14:08 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u2UyJ61F; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf21.hostedemail.com: domain of song@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=song@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680286449; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cnyyTNSoAZhzH+Cr4XZCGYVN7DGnCBwMV6jLESx5x3U=; b=0JOBxn5lDyi03Lk/9sAsGvDfKliY27XkQNJp5X9ly6CRut6jfLR0M7GCupmYNTIquipk1e Pq+TAqARM+SqJHYK8xRp2B1CFe1Wf3eo7nHN7BUyyLRPkztETTo9a7jEG/+Z78GSftyraM grHBkf6+Qf417gked+fwnHvDHjgcwXQ= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u2UyJ61F; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf21.hostedemail.com: domain of song@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=song@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680286449; a=rsa-sha256; cv=none; b=S0wK9vMZCq7uxjJm2KM3Zj319YNmk3paR0cmo3UbVTxr6CIwn7vUGWDyUMKuKouKNPkXvz F8qOAVugo2hellsCmGuakmug2Ajw95714TChX3epXqEl54aItQHbap+enWIy8Jwww5QjsO 3230CTg17+EpRs2x3lTS/S5158L2tik= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 4DA84B8317A for ; Fri, 31 Mar 2023 18:14:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 906CEC433AC for ; Fri, 31 Mar 2023 18:14:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1680286445; bh=gAgmbH9ftu5DAZPB9SoVGvrkWv8Y2dxMgr70HbBIrh0=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=u2UyJ61FTV2+znZWsPlsLmvw7sSO3LeRWInykbiXqNJPkVJ40IoNP6aBsJ2TWeaQo q4hvnrrVkPXWhp+7v0LVHn2eHJRHdMeB2M8gGT9u2q7y/jHTOGvX0c3uaSmH//NvBI NAfAKgPsBu+QPzmtzJUt5QWiZB71tmWY0DG/A+kIwHiExDVDu+tg4eoSY1wTe4d2lI lIqqU5MzNf6ii6c4tioA47PHAuGJKnj1E8lOf3g/+VX7YlXkc0r5gJjBj5iEazVvfx uKIKMzuy2JcSrnDgai8EOWQ6XQhty1enPVqZRvFJEEC48cy1uMs1Es4DpzFbe5p93B FF/gFfYitQwzg== Received: by mail-lf1-f44.google.com with SMTP id c29so30040673lfv.3 for ; Fri, 31 Mar 2023 11:14:05 -0700 (PDT) X-Gm-Message-State: AAQBX9cYotcKRVF1ntGAGfmKTPu59HrmIdROechw5/uaLwdUfyyTRK1X Vi/+f/dpRH7jhwFhmEGLtafH1VftGXrv+Stn2uQ= X-Google-Smtp-Source: AKy350bGczgf8cOPQ3B8DjpL0OvNqhqJf0gVtuLTkWI0qZ++fzJqZuNXbM/Tji+xZXn5DWwX7QOe8uol0L5QJx5bU4Q= X-Received: by 2002:ac2:5610:0:b0:4dd:a4e1:4861 with SMTP id v16-20020ac25610000000b004dda4e14861mr8251248lfd.3.1680286443592; Fri, 31 Mar 2023 11:14:03 -0700 (PDT) MIME-Version: 1.0 References: <8b8a3bb2db8c5183ef36c1810f2ac776ac526327.1680172791.git.johannes.thumshirn@wdc.com> In-Reply-To: <8b8a3bb2db8c5183ef36c1810f2ac776ac526327.1680172791.git.johannes.thumshirn@wdc.com> From: Song Liu Date: Fri, 31 Mar 2023 11:13:51 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 17/19] md: raid1: check if adding pages to resync bio fails To: Johannes Thumshirn Cc: Jens Axboe , Christoph Hellwig , Hannes Reinecke , Chaitanya Kulkarni , Damien Le Moal , Ming Lei , linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, dm-devel@redhat.com, linux-raid@vger.kernel.org, Mike Snitzer , Matthew Wilcox , Dave Kleikamp , jfs-discussion@lists.sourceforge.net, cluster-devel@redhat.com, Bob Peterson , Andreas Gruenbacher , David Sterba , linux-btrfs@vger.kernel.org, Damien Le Moal Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: E8AE31C0021 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: rqyhxzrunr37m1jhkeoc1qnxk1rkr1he X-HE-Tag: 1680286448-863122 X-HE-Meta: U2FsdGVkX1+4/ROJXGFUroAktij5NZ+hdTsCpV7nT9UkwM6+WdCHki1A8zJR94dDiRoGInCme6mbD/6lhGgPif2b6h3DilTYHTq3VRhp1X9hnF+wKp9YqZcnNDH+yJwLJlVlBB2GMpqJVONq0dZHR/AaGzNna3FaaQ570Sfl8JxxVdmm4cRF/X8JtjFUoScNZQa/dsNkkEYLn902I+rbFmIPT3epUiclndzgb0rOHj9m/auHCOhKG+ABlX8JIGJHl/NazPe0/5vzPiF4S7/4M1WhRl914oYs4/q23HKZQv4YdRtUkZj8FmWdV6lq5sN7yl9fYTOssOJGNi+eyxHel31sPkDUwJLgI2hSDDf2fA7XcgeW+GNPFeMEqnW96KvOx7FoQENHce4bo4FLC+cvdJvusIOnzOOIMOqsqmQGFmZoVlko7m2PXcgze3L4y+KlIix/bOv31v39aiktkWIQa+hYzY1h8056oQOrWqiXVl4nB24mKl0dptEBLOi3dGXvRb9rgSXjtEx+AkRFjW5pVMhHV/G/wVjQSCkaBkQE2IvrLnQWV3NiDqh+nT6+ocYTxWlFbrZrObMOoFIgI3+PyBcoAZXeA74lNrUHPgaAoK4tSYDAqgxp1fRk09cffXezVDzCIAR5zyKavwYsQy2fFvxSeEvEsOXz3re9FedyZMZYV2leeTll/JHvfPKIl2Dmy8IK33rY4kqn3YSNUlPNW0foekboEC52/EMJSnoFnJ68OIPK/gskYElpC7exsesqZ5P4Z+KFnX4V3E1EKCurBWbOv3aTuPHfdg5mBCIbUYEqGZYfSFYrT7KuFy+fOLR/OhZnfjMSQWBXzR9aPzA9usJnGsYPXcQTDIThGNTDC2rFVWdiO9Gh9kyv1KeIrfI8Rod0+NnzNFtw1Ih/CE+dVyFCkQXL1AbdrWgOr/cHTnB8J1TZXm4tI7FdIA5XEqrGKUb38OX4p0kO2fUmZtS KNlTJutO YzWcAKPMMDYHt85yypPGY+IpICnTP8zsAaAxLt96zp0UlfEhHwnqpxqy4fZ2td3GvNDcVkSPoZoKJGaDSulEWQu/0ghD/EmRBgoaw9gywtM5/i+pVPGb4hP0jgIGUpt5aLRWbzxMGqUtTLADCJPIIkBiOoMAQ6aFEg7ujlfOh3uoA0+fnqMLU3rVJWtIvOywDXP6O/YaV0BLiAfj98z9rgs4JnMYJ9KVEicKR X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Thu, Mar 30, 2023 at 3:44=E2=80=AFAM Johannes Thumshirn wrote: > > Check if adding pages to resync bio fails and if bail out. > > As the comment above suggests this cannot happen, WARN if it actually > happens. > > This way we can mark bio_add_pages as __must_check. > > Signed-off-by: Johannes Thumshirn > Reviewed-by: Damien Le Moal > --- > drivers/md/raid1-10.c | 7 ++++++- > drivers/md/raid10.c | 12 ++++++++++-- > 2 files changed, 16 insertions(+), 3 deletions(-) > > diff --git a/drivers/md/raid1-10.c b/drivers/md/raid1-10.c > index e61f6cad4e08..c21b6c168751 100644 > --- a/drivers/md/raid1-10.c > +++ b/drivers/md/raid1-10.c > @@ -105,7 +105,12 @@ static void md_bio_reset_resync_pages(struct bio *bi= o, struct resync_pages *rp, > * won't fail because the vec table is big > * enough to hold all these pages > */ We know these won't fail. Shall we just use __bio_add_page? Thanks, Song > - bio_add_page(bio, page, len, 0); > + if (WARN_ON(!bio_add_page(bio, page, len, 0))) { > + bio->bi_status =3D BLK_STS_RESOURCE; > + bio_endio(bio); > + return; > + } > + > size -=3D len; > } while (idx++ < RESYNC_PAGES && size > 0); > } > diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c > index 6c66357f92f5..5682dba52fd3 100644 > --- a/drivers/md/raid10.c > +++ b/drivers/md/raid10.c > @@ -3808,7 +3808,11 @@ static sector_t raid10_sync_request(struct mddev *= mddev, sector_t sector_nr, > * won't fail because the vec table is big enough > * to hold all these pages > */ > - bio_add_page(bio, page, len, 0); > + if (WARN_ON(!bio_add_page(bio, page, len, 0))) { > + bio->bi_status =3D BLK_STS_RESOURCE; > + bio_endio(bio); > + goto giveup; > + } > } > nr_sectors +=3D len>>9; > sector_nr +=3D len>>9; > @@ -4989,7 +4993,11 @@ static sector_t reshape_request(struct mddev *mdde= v, sector_t sector_nr, > * won't fail because the vec table is big enough > * to hold all these pages > */ > - bio_add_page(bio, page, len, 0); > + if (WARN_ON(!bio_add_page(bio, page, len, 0))) { > + bio->bi_status =3D BLK_STS_RESOURCE; > + bio_endio(bio); > + return sectors_done; /* XXX: is this corr= ect? */ > + } > } > sector_nr +=3D len >> 9; > nr_sectors +=3D len >> 9; > -- > 2.39.2 >