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 B9687C6FD1F for ; Wed, 22 Mar 2023 14:19:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DD716B007D; Wed, 22 Mar 2023 10:19:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 48CD66B007B; Wed, 22 Mar 2023 10:19:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 37BEF6B007D; Wed, 22 Mar 2023 10:19:27 -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 2A4326B0078 for ; Wed, 22 Mar 2023 10:19:27 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id C6FCB4051D for ; Wed, 22 Mar 2023 14:19:25 +0000 (UTC) X-FDA: 80596741890.04.DFB79FA Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf18.hostedemail.com (Postfix) with ESMTP id 912AA1C0002 for ; Wed, 22 Mar 2023 14:19:22 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ZJGeiZAp; spf=none (imf18.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679494763; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3I8+EPoj9s30M6BN+/MyaicBmCloUwGfehVdB0NlrWY=; b=ZCms+gXd3e3E1w8JWMMtbUBLrw4nIyMVOW/c7NSGhrWq3F0QPQO8/N7TwIzlFKXPIddjhG zk6CAEQzLG5wDPaEeN1AeuoXWsPZfwOmlBFnmwOInrzVlqO0215g4xnCkTS4dC2CNnPz9u KukF8ddpJPSWgQ/QOq8OzzcI+e8jGE4= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ZJGeiZAp; spf=none (imf18.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679494763; a=rsa-sha256; cv=none; b=JZls0fStLOjXbQMxvfyncsITrupp69UV7Tco+CIArb6ZBW+LCxJiZM1FMRV/quQMEn+WKm XXXYQWu29xzaVZ2I3A2Hm9z3WG2GS6MxpA3VzpkIZzQnk10aD7xe+WX1eYmp/R3CPz+SVL iojI+D3j3RZI/MKMN3GcjioeaOYeapk= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=3I8+EPoj9s30M6BN+/MyaicBmCloUwGfehVdB0NlrWY=; b=ZJGeiZApYD0ixCPvU2hO6qnVJ4 6hWhoXL2A5VSGpA/HCIUwp17RyNbGB6HwspMKQJPNDDh20N6hrOT4ozwKMOIDvzXcfPIOJMsyrkjM Wt3MkZhdFVmqHdJ1lWxT4eXdCx110KJnbOyzl/iPxY+bn6XLfmHsjea6m1l7KLD8f7dY4YSKeAek+ umzj/t7YDT4ethQO/0993oVhI/sJvKfiV78LOHHrY6cakTRl21XfDTdT4E8DXsRynHOO+boyXDbX4 Mw0WKEvPgsFeoFkI87C2PhNCXHmae9LHyCnHR6r3HoUft2dxDNv/BZgb6iE5h3T4igDN8xhR2ML9O rV2aBaYQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pezIz-0034XG-FS; Wed, 22 Mar 2023 14:19:09 +0000 Date: Wed, 22 Mar 2023 14:19:09 +0000 From: Matthew Wilcox To: Pankaj Raghav Cc: senozhatsky@chromium.org, viro@zeniv.linux.org.uk, axboe@kernel.dk, brauner@kernel.org, akpm@linux-foundation.org, minchan@kernel.org, hubcap@omnibond.com, martin@omnibond.com, mcgrof@kernel.org, devel@lists.orangefs.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, gost.dev@samsung.com Subject: Re: [RFC v2 4/5] mpage: use folios in bio end_io handler Message-ID: References: <20230322135013.197076-1-p.raghav@samsung.com> <20230322135013.197076-5-p.raghav@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230322135013.197076-5-p.raghav@samsung.com> X-Rspamd-Queue-Id: 912AA1C0002 X-Stat-Signature: fhjww56gpozufgd31x7ac9rzuhpmioxk X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1679494762-34999 X-HE-Meta: U2FsdGVkX19xvxQE2XGJY6eUfMbAL7zxq4NsMzyMXqPXHMRN5Y280PL6Jepno5NydfuLGlmrSw5Zl7rahPfkBp7kFWS0tI1knUOkJC60z7azJ/xePpNbHCm5+c3KKDrTwZ6sqfLhfLKNqi23E7vNyKheFPShKZMP1GwEHp9V1pCZloYNTBKHLfvLBkWthz/EXM4evzyTPuf92mf91ll7Gx5OR/ZYx3u/k49ic5hxBjoKlbuvPdAV2P3MiwTq4lbZ2DEf+ium3bvBiajfRXSVGmF5wQYI6TO8KaOaHSVEYTtwyxAbgrPtR4mKNPYBPlTfDYz3ZpWCypf0rfAGnVlQnz/6/V1wITt+SWa93QzCl8e+NhwVFMuvxm5C7m617+IF+PLlvx2JSzEMBsTxaUfV5O3ckPUspLtJRcO2bVVhCYmmyy4Yv5NtBQwBEyyvclxkF4lGTZbbGz6cXEaPmcNxH38DFjhfmm9k9DC2vze3szlEKsQ2mfAGqbkuevpB1qu6RFiyOw7hAl8gKmsg6cdtf09/cFKRhHFWNy1Y/YkbWht9qjzfRgils6IPiTQjT8AWDxVA4g6MJbZ0Ghk4cIeNnyQmDJcwisQltoaq1cinJhToacEMM9rE5nA7UyQjx/f4LU0EYURD3vEQRXXsXYtidEVzWHvS1sX4ENM861CiilbLuYS7RTkNhcOUUD9PPzkOwf47AJ/j9bHG2z5qvPBSwy36bQtQNIMO0AxJCPdUsW4ddJAaJnGk0LaEGAe8/FNi3fyE9oJn6uhnM2xu84L0QSnFhg8fP/VgkNXCzRB4bZZoU+rOw04rOmg4gk41yIvWHJyHZn0gt+BPl3vo9gaa1hTISq4faFpkn6Pn7PWRQbbHf0M4BgZ8XZgTE9/Hc9g90S+INVb07Rvs5W4UEBf7AEMSMoLxlI5hMn4y10zAGGycgLZoVs9BKTwuEHC7CSdTMaVvIJiSyDdRxptd6Aw fzhvmwci /f885g1bLqMQfogtlQNR5xySBp4q1z4BVuBkfViWxAM2F+ONiKlcBmv0mX6k0impqt+amK5WlDXhjI6E/ZWGVsN7+8l9gshX67SN41eRR2GOQc2WlloljZ5+pUahIwkrL7wE0E4fKl9JFQhYGjYypjabTeG90HJ9UZvhxWzPVMviknEvPtQwLx21qLPb1zyvNijhhapX/HlH9AcE= 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 Wed, Mar 22, 2023 at 02:50:12PM +0100, Pankaj Raghav wrote: > static void mpage_write_end_io(struct bio *bio) > { > - struct bio_vec *bv; > - struct bvec_iter_all iter_all; > + struct folio_iter fi; > + int err = blk_status_to_errno(bio->bi_status); > > - bio_for_each_segment_all(bv, bio, iter_all) { > - struct page *page = bv->bv_page; > - page_endio(page, REQ_OP_WRITE, > - blk_status_to_errno(bio->bi_status)); > + bio_for_each_folio_all(fi, bio) { > + struct folio *folio = fi.folio; > + > + if (err) { > + struct address_space *mapping; > + > + folio_set_error(folio); > + mapping = folio_mapping(folio); > + if (mapping) > + mapping_set_error(mapping, err); The folio is known to belong to this mapping and can't be truncated while under writeback. So it's safe to do: folio_set_error(folio); mapping_set_error(folio->mapping, err); I'm not even sure I'd bother to pull folio out of the fi. bio_for_each_folio_all(fi, bio) { if (err) { folio_set_error(fi.folio); mapping_set_error(fi.folio->mapping, err); } folio_end_writeback(fi.folio); }