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 0E307C54EBD for ; Mon, 9 Jan 2023 13:49:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 99F1D8E0002; Mon, 9 Jan 2023 08:48:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 94F7E8E0001; Mon, 9 Jan 2023 08:48:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 816FC8E0002; Mon, 9 Jan 2023 08:48:59 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 718248E0001 for ; Mon, 9 Jan 2023 08:48:59 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3C170C01E1 for ; Mon, 9 Jan 2023 13:48:59 +0000 (UTC) X-FDA: 80335391598.22.4E0BE8A Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf06.hostedemail.com (Postfix) with ESMTP id 72A21180013 for ; Mon, 9 Jan 2023 13:48:56 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Uqe7vWk8; spf=pass (imf06.hostedemail.com: domain of jlayton@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=jlayton@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673272137; 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=2CfqidMLnW0aaIqteCPZpgdsKWsY8U+mQHaeGEa4FUw=; b=ATYadCDxx1fKb+gNgxJiZvXfMntGFVonFqkYU9CXKTzlh9YD5EXoLFM3zpvTnj4i+1x5jR 9wXYixve58QAYngCDBmfZ98MibR9qXsOsJYcQhXni2vWl4aFTmrtAklBVybCWhh3rGXu6R 8YfG29dA4MBDojwC93HJIZ9foMBerKA= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Uqe7vWk8; spf=pass (imf06.hostedemail.com: domain of jlayton@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=jlayton@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673272137; a=rsa-sha256; cv=none; b=tP2gkX5XOJhXNLRx1njPLN9+wXs7GWNsXeTUjR/AZ22TRHvC+t7zAoWAxJWc2GKkeKIjXi Bn40EdErrvv8laBb3BxOUinxmhgftYaDFyF2saBxLUiEWqGanUlO4bWKjQMUY2Hbvz+cFy zZ7+cMTWmy0JgD5jEy5fvJ0GVL+EnMk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1673272135; h=from:from: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; bh=2CfqidMLnW0aaIqteCPZpgdsKWsY8U+mQHaeGEa4FUw=; b=Uqe7vWk8cOlJhLkAj2aGSrH4X70IZh8CHmZQIafx9WszUdd60XmyOPQpk47J+KRMCzXBpa v1pMUpM6DnRk0Fy2/SEY3UgScxh2mruSx//FjQKfGPNVzmGx3UX3lspNIf3IPw9DuvHpoE l8u15Ir7vIcLZOfgWCnrdhs6bhZWKGs= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-6--Y3bS8VeM2C5KiJMp051Dw-1; Mon, 09 Jan 2023 08:48:52 -0500 X-MC-Unique: -Y3bS8VeM2C5KiJMp051Dw-1 Received: by mail-qk1-f200.google.com with SMTP id bp6-20020a05620a458600b006ffd3762e78so6507872qkb.13 for ; Mon, 09 Jan 2023 05:48:51 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=PvQQWSrgFrwfgP/nK/4g0KowjQbRVLSmpT5SVnvrh64=; b=fX5qweUuKIvogQLFVhmew+ylf3YfBNLTqmuD8TTUiO//N5niTdTJVu5oeA0pC+E8nD BWBn4rOh7+cMd74T+IRo4s/B6nL8+3q4WpVypu7ZZNynNa3qXLQiHOBmzUCiTmG2DZ/s 8uswLDm90mUkkDNsBR1Dd7oD8k8DFwxEcNWOeryTQrBrJZpO39zOZpwvVT1nhHz2jJfO XqoWzw1Z8GYew+ehsyv3Ki9kSbfqtdFh8h8Rv8VeuY5jM1DXQiTLBYI/aWyA88Rf8L2o NCYRdxUSbVO46wahs3AOmxa1xE9dC4jy+XnxpZckeHPPUPOHImzRmkivzMuocnILdmL2 OdOQ== X-Gm-Message-State: AFqh2kqG4218YuPOGCOU4YSbVwlJf3vCGHw+6zeHyT3qTj6Pw5ATpiv6 oScBXx+WmREKETW7RsZHsZ12Ihw5m7YE6gNOX50B1I9KWsB/ZfoljqnmXeOfsqYbueuawYjImau 5eUgaeQ0klyk= X-Received: by 2002:ac8:4509:0:b0:3a8:162d:e977 with SMTP id q9-20020ac84509000000b003a8162de977mr91039457qtn.58.1673272131565; Mon, 09 Jan 2023 05:48:51 -0800 (PST) X-Google-Smtp-Source: AMrXdXuBqYf6sR9hrOI8TK8PSKFDec2DU6T9YlCBq3DM5BjirOxhid+aIw2+3HKxNZhD/YmD4XYT3w== X-Received: by 2002:ac8:4509:0:b0:3a8:162d:e977 with SMTP id q9-20020ac84509000000b003a8162de977mr91039437qtn.58.1673272131330; Mon, 09 Jan 2023 05:48:51 -0800 (PST) Received: from [192.168.1.3] (68-20-15-154.lightspeed.rlghnc.sbcglobal.net. [68.20.15.154]) by smtp.gmail.com with ESMTPSA id z2-20020ac86b82000000b003a5c6ad428asm4551847qts.92.2023.01.09.05.48.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Jan 2023 05:48:50 -0800 (PST) Message-ID: <36311b962209353333be4c8ceaf0e0823ef9f228.camel@redhat.com> Subject: Re: [PATCH 02/11] filemap: Remove filemap_check_and_keep_errors() From: Jeff Layton To: "Matthew Wilcox (Oracle)" Cc: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Christoph Hellwig Date: Mon, 09 Jan 2023 08:48:49 -0500 In-Reply-To: <20230109051823.480289-3-willy@infradead.org> References: <20230109051823.480289-1-willy@infradead.org> <20230109051823.480289-3-willy@infradead.org> User-Agent: Evolution 3.46.2 (3.46.2-1.fc37) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="ISO-8859-15" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 72A21180013 X-Stat-Signature: 5gatgyx76xkhnk3fncpj7ypcebkh5t4x X-HE-Tag: 1673272136-366770 X-HE-Meta: U2FsdGVkX1+8u8ilFVxWJihgFlFlyChUpT6ca1xDWaMWY+udCOrNRobcC009Zfk61EHlcreMnP4+4p0d+2sMU9iBl0beRcXfEsAJjfmQ0eNzsrRjS2R6gCACkf24YcVUcR3rFLNaHNlYjz/KwXIL10fjRjoExg7ZtYrPk4R6SXsaHZFe+F5CynSja9R9U76GNZjXGeMB6qskNkHIdxiSn7nLUxqEy1uWaTJnmsaQjYLnVedR43y3lRsfP64BOqn6jNPv5GEataoGymipxmSlgvaieunx35T/NrMQycuT/1AU4qe8aHL8Xcc+3AZ91vbN0JZud1LFYkj5y9Q2gVTRyU2XBrtDHLJWBX/vk+c2ILRUjbKiGhEgV14pcjk2tO2DGD7B7dsFzeDIqxlvxtVh9gdoYEl7EnQJ8GcSXObXxkMRZ8thHRkszkGYv8qc153+KEsNF5H7cD29sJ2TK99qBzrmvKAjGpVXb+rHl+pUdeIa5YHzBQXPDfnY4kLKgOv1cWu8XLm9qSRXgP0eLyLeCL5ewVEVtxg5imdgm2exueclxFIbhi9tmTdRsk16U8NewP3jqiONQPoDpGNVdy/KvmYJpILjIAZ1s4iDJsna9ijF9NNPZjfWGgeG/RYg38ib7De6ptpU8slUOz9WFys9FasK4bP+FhUEywo0U+yG0MCn1C5EiKN7hLFSsRUSuy0ObL9ZxX/LCh1S+4W8FHb8rnk/3dTiz6UlpNTUvmvCkA2mkXi+ra0bkS8t+X2IxQJ+d54bcfX8obga0Y0REXZ6UK0sWGdSOhP4WHMf9OHggezck+IJXBJkGAhAMzTNXpq58Ll4JmWbolHQqPivZUql71RJsDrnZ+SivoZEAa1/yPNcjPPltQDbsc77zzUUJRKjfeEQWlzBiX99zgMgqqiJdKSv8LUF01F5aijvSFTxcBUHa0HJvE2ADUFKbhZ6ioMLEjlrXqDBJsgxiAEz1tE UOBySwpA HSZvGSpum6as7kayxNSx4UbhBSJPLnCXKyPdiisE4t53OfjEw62diraV+hqvSG4tbjZLdEwW/ipiZMKqECswQ7qWE6TNA9hNtXnBZPvSGuLwN4EWlLl6LJqe6WMrbv/7tmeGY78NAU0IshvXlVkJy91/Xhw== 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 Mon, 2023-01-09 at 05:18 +0000, Matthew Wilcox (Oracle) wrote: > Convert both callers to use the "new" errseq infrastructure. >=20 > Signed-off-by: Matthew Wilcox (Oracle) > --- > mm/filemap.c | 18 ++++++------------ > 1 file changed, 6 insertions(+), 12 deletions(-) >=20 > diff --git a/mm/filemap.c b/mm/filemap.c > index c4d4ace9cc70..48daedc224d9 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -355,16 +355,6 @@ int filemap_check_errors(struct address_space *mappi= ng) > } > EXPORT_SYMBOL(filemap_check_errors); > =20 > -static int filemap_check_and_keep_errors(struct address_space *mapping) > -{ > -=09/* Check for outstanding write errors */ > -=09if (test_bit(AS_EIO, &mapping->flags)) > -=09=09return -EIO; > -=09if (test_bit(AS_ENOSPC, &mapping->flags)) > -=09=09return -ENOSPC; > -=09return 0; > -} > - > /** > * filemap_fdatawrite_wbc - start writeback on mapping dirty pages in ra= nge > * @mapping:=09address space structure to write > @@ -567,8 +557,10 @@ EXPORT_SYMBOL(filemap_fdatawait_range); > int filemap_fdatawait_range_keep_errors(struct address_space *mapping, > =09=09loff_t start_byte, loff_t end_byte) > { > +=09errseq_t since =3D filemap_sample_wb_err(mapping); > + > =09__filemap_fdatawait_range(mapping, start_byte, end_byte); > -=09return filemap_check_and_keep_errors(mapping); > +=09return filemap_check_wb_err(mapping, since); > } > EXPORT_SYMBOL(filemap_fdatawait_range_keep_errors); I looked at making this sort of change across the board alongside the original wb_err patches, but I backed off at the time. With the above patch, this function will no longer report a writeback error that occurs before the sample. Given that writeback can happen at any time, that seemed like it might be an undesirable change, and I didn't follow through. It is true that the existing flag-based code may miss errors too, if multiple tasks are test_and_clear'ing the bits, but I think the above is even more likely to happen, esp. under memory pressure. To do this right, we probably need to look at these callers and have them track a long-term errseq_t "since" value before they ever dirty the pages, and then continually check-and-advance vs. that. For instance, the main caller of the above function is jbd2. Would it be reasonable to add in a new errseq_t value to the jnode for tracking errors? > =20 > @@ -613,8 +605,10 @@ EXPORT_SYMBOL(file_fdatawait_range); > */ > int filemap_fdatawait_keep_errors(struct address_space *mapping) > { > +=09errseq_t since =3D filemap_sample_wb_err(mapping); > + > =09__filemap_fdatawait_range(mapping, 0, LLONG_MAX); > -=09return filemap_check_and_keep_errors(mapping); > +=09return filemap_check_wb_err(mapping, since); > } > EXPORT_SYMBOL(filemap_fdatawait_keep_errors); > =20 --=20 Jeff Layton