Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp9659913rwl; Wed, 11 Jan 2023 08:21:58 -0800 (PST) X-Google-Smtp-Source: AMrXdXvwYijix7jmrQwE5f1Bodob08UVeaccbBYAdcPAPh6a2OpWq3gK+IF3i2y9Q8JJitX0Uggy X-Received: by 2002:a05:6402:1613:b0:492:798:385e with SMTP id f19-20020a056402161300b004920798385emr21975696edv.33.1673454117946; Wed, 11 Jan 2023 08:21:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673454117; cv=none; d=google.com; s=arc-20160816; b=JZ7rjc90SfLtc6MOgeH6+yo/PdO/Xs9k/+Guv1XKFdVEyymAPH4jpHwUC401nPXsXh +HXDd/02RvKmShYi0atutBjKFTBEyIW8u738CgzLylWonK2U+nWwNvvi5oeZw6bUTbkC 8pjYIhKuAPIynFOiE5PXwW25Haiewo2MrQHfzcHdHhcYF9rpNTG3DeYIut/QI/49Q2lh Ymx6eHANJ0EUX6DoeQdLh6plJM0XJcKjL30WzzJ2N0GLpvWCH69Qy9+mp8QJuVUDNlXH OcjAS6A3jRH7saaXc+mNiklOO+11jZzhmnxscEWVy3z98GvloEzJ14mbSPhXRVCFYr1o ET/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=QInJOM56A8ZzMOfRkZbdd/idmpwWnTWTT0b+KAP56V0=; b=eQrrpVAbS2tJQ2XYdKuYYsWvVi+/eGFU2+jTM5uiNyjVnNio3E5HrcYecxluBYlMD4 3HwMbPaty+018jh+Pv2AozVrDqaIJC5qpMNRF0k/qd6cwN/W1jOukNRSre+WcIpGI8/R Hzxv8pLNilMDDGNCRyxBZk5gXhIUqvE8qqlUbg0TzGl5frYZwXsb9DPa3Iej0n7Atvf8 l3837DX6P9Dvz+a/EBgBLtL1CDdGs6nLb8Lz9D6E6kjvzvQfX2DPbq4HQGooV3LXCnxf I3CHTHKyqpWxBB2Dts4kCaWJfkuqX9cxpQtGcSPi56KkmVVy+o/JCGbH4aq7/ksFgMjz nLsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=RyySAOCX; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t23-20020a056402241700b004993bc3d7bdsi10682888eda.84.2023.01.11.08.21.29; Wed, 11 Jan 2023 08:21:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=RyySAOCX; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232011AbjAKQVZ (ORCPT + 99 others); Wed, 11 Jan 2023 11:21:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59652 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238847AbjAKQUg (ORCPT ); Wed, 11 Jan 2023 11:20:36 -0500 Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 76B3C1DF2A for ; Wed, 11 Jan 2023 08:18:36 -0800 (PST) Received: by mail-qv1-xf33.google.com with SMTP id t7so10948169qvv.3 for ; Wed, 11 Jan 2023 08:18:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=QInJOM56A8ZzMOfRkZbdd/idmpwWnTWTT0b+KAP56V0=; b=RyySAOCXSPzmfB65iJ052gJyMGP3418APKwg+TVyyKMInXp+wXX/9KPEVMSVRYwx35 7alGFSo98Mc95O133Pdrzs1mgTpQ/qkXgzE9jYhCkCIrRPT43gsTXGHbDQjf9OrOO+0I RarJPGn0ZENeVce+3vWHeMCnwRKXmInYtwfuU+4YCV/qApMyGg1keeZPCoHEysgewMNZ /bm05DSZNbk9kbvET47QHexyRMaeIuBdvQ+y0zhE4/Lehc1X9GezGvw0YWmnXtv089oc MJGOOj5tyKXnn9V5KlTWBGOp4q0SsXqaO1R3q/mdkoHNpMAQ9ai6zT9RGYQkBAvzUTcy bojQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QInJOM56A8ZzMOfRkZbdd/idmpwWnTWTT0b+KAP56V0=; b=6k084k5yaBBcOC+MFYR9f8UN+fbIXpTeUJZ6Ki2P/806zlTWgviSJ8Ai6YBj+/2sBu iqFinAB4zek9i4ZNJXXh6rZsfpPYi45vRJcq3g3sOMQ96dcwF/xPgbO12Y7poNFX17Fs JrvSEokDQpHhow/blqt3E3td0VRt7fky7B2ESK7MI+FWFI/kgErWumI4CcGGLKuF+vRU MuPOvM63stmyPefP0a0Bs7LEI7SN7o8ufagC34LEIzxuoDOSCwN8h+7MC19Hpsn+ln5i q9SXWsY9iLXdCzACUZ7t7nbU0RULRmmmVz/CpFA07F3NWZG9Tc+zaDeHHj2qBtDIxHc4 lJvA== X-Gm-Message-State: AFqh2ko2h53EaFnpZNDo7w83SwC6pyErUmc7Fk72A3hpCMQKqN8F7scN b4z4iuiT+Pc2MZOeiE2xUjj51NK/+8bCNCFbyd2O95jswns= X-Received: by 2002:a0c:f691:0:b0:532:3011:ab07 with SMTP id p17-20020a0cf691000000b005323011ab07mr596192qvn.30.1673453915315; Wed, 11 Jan 2023 08:18:35 -0800 (PST) MIME-Version: 1.0 References: <20230107173635.2025233-1-trondmy@kernel.org> <20230107173635.2025233-2-trondmy@kernel.org> <20230107173635.2025233-3-trondmy@kernel.org> <20230107173635.2025233-4-trondmy@kernel.org> <20230107173635.2025233-5-trondmy@kernel.org> <20230107173635.2025233-6-trondmy@kernel.org> <20230107173635.2025233-7-trondmy@kernel.org> <20230107173635.2025233-8-trondmy@kernel.org> <20230107173635.2025233-9-trondmy@kernel.org> <20230107173635.2025233-10-trondmy@kernel.org> In-Reply-To: <20230107173635.2025233-10-trondmy@kernel.org> From: Anna Schumaker Date: Wed, 11 Jan 2023 11:18:19 -0500 Message-ID: Subject: Re: [PATCH 09/17] NFS: Convert the function nfs_wb_page() to use folios To: trondmy@kernel.org Cc: linux-nfs@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Hi Trond, On Sat, Jan 7, 2023 at 12:43 PM wrote: > > From: Trond Myklebust > > Signed-off-by: Trond Myklebust > --- > fs/nfs/write.c | 35 ++++++++++++++++------------------- > 1 file changed, 16 insertions(+), 19 deletions(-) > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > index 0fbb119022d9..14f98c452595 100644 > --- a/fs/nfs/write.c > +++ b/fs/nfs/write.c > @@ -2069,13 +2069,18 @@ int nfs_wb_folio_cancel(struct inode *inode, struct folio *folio) > return ret; > } > > -/* > - * Write back all requests on one page - we do this before reading it. > +/** > + * nfs_wb_folio - Write back all requests on one page > + * @inode: pointer to page > + * @folio: pointer to folio > + * > + * Assumes that the folio has been locked by the caller, and will > + * not unlock it. > */ > -int nfs_wb_page(struct inode *inode, struct page *page) > +int nfs_wb_folio(struct inode *inode, struct folio *folio) > { > - loff_t range_start = page_file_offset(page); > - loff_t range_end = range_start + (loff_t)(PAGE_SIZE - 1); > + loff_t range_start = folio_file_pos(folio); > + loff_t range_end = range_start + (loff_t)folio_size(folio) - 1; > struct writeback_control wbc = { > .sync_mode = WB_SYNC_ALL, > .nr_to_write = 0, > @@ -2087,15 +2092,15 @@ int nfs_wb_page(struct inode *inode, struct page *page) > trace_nfs_writeback_page_enter(inode); > > for (;;) { > - wait_on_page_writeback(page); > - if (clear_page_dirty_for_io(page)) { > - ret = nfs_writepage_locked(page, &wbc); > + folio_wait_writeback(folio); > + if (folio_clear_dirty_for_io(folio)) { > + ret = nfs_writepage_locked(folio, &wbc); nfs_writepage_locked() still takes a "struct page *" until the next patch (NFS: Convert buffered writes to use folios), so I'm seeing this when I try to compile: fs/nfs/write.c:2097:31: error: incompatible pointer types passing 'struct folio *' to parameter of type 'struct page *' [-Werror,-Wincompatible-pointer-types] ret = nfs_writepage_locked(folio, &wbc); ^~~~~ fs/nfs/write.c:661:46: note: passing argument to parameter 'page' here static int nfs_writepage_locked(struct page *page, ^ 1 error generated. make[3]: *** [scripts/Makefile.build:252: fs/nfs/write.o] Error 1 make[2]: *** [scripts/Makefile.build:504: fs/nfs] Error 2 make[1]: *** [scripts/Makefile.build:504: fs] Error 2 make: *** [Makefile:2008: .] Error 2 > if (ret < 0) > goto out_error; > continue; > } > ret = 0; > - if (!PagePrivate(page)) > + if (!folio_test_private(folio)) > break; > ret = nfs_commit_inode(inode, FLUSH_SYNC); > if (ret < 0) > @@ -2106,17 +2111,9 @@ int nfs_wb_page(struct inode *inode, struct page *page) > return ret; > } > > -/** > - * nfs_wb_folio - Write back all requests on one page > - * @inode: pointer to page > - * @folio: pointer to folio > - * > - * Assumes that the folio has been locked by the caller, and will > - * not unlock it. > - */ > -int nfs_wb_folio(struct inode *inode, struct folio *folio) > +int nfs_wb_page(struct inode *inode, struct page *page) > { > - return nfs_wb_page(inode, &folio->page); > + return nfs_wb_folio(inode, page_folio(page)); > } > > #ifdef CONFIG_MIGRATION > -- > 2.39.0 >