From patchwork Mon May 15 10:40:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ritesh Harjani (IBM)" X-Patchwork-Id: 13241256 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AD6C5C7EE25 for ; Mon, 15 May 2023 10:40:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240232AbjEOKk6 (ORCPT ); Mon, 15 May 2023 06:40:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239127AbjEOKk4 (ORCPT ); Mon, 15 May 2023 06:40:56 -0400 Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBE471BC; Mon, 15 May 2023 03:40:54 -0700 (PDT) Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-6439bbc93b6so8825959b3a.1; Mon, 15 May 2023 03:40:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684147254; x=1686739254; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NMjoQ6t2aFRxmfNfu7Q0YEqH72acltcAQi6vXgz7/40=; b=ggkwRbc0Y5EUjOfNwngab/gF1CBQdmYrrihvDYpNH4+a9n1A5XyE7DWxTZD60vtWfP TlHszDW3pYVsYsA0qN5fIMUDcLv9uiuiBFrbZjzN2WxBYgFaxjyPLsM/YYN8qmiNmrBm Vv/GDLddZ6FQ8WSTh0up0830NwA5kOnDBHXSPwHLDmtQ6mvITMUMV1zGZxVjEMwShwg2 dekRFxE0h8BwaPZuP5na0+Kiq2JJrgKcljvG5MyLjMQvQU+iXipO6ruFU12MzL5G4KGW dyrY4xn4BtjvimWOnjUIO7LbELZvUzs2qPZLA1/uhhFb1hBnwkMUbx7xIAwJ/NxdVZ9u UaRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684147254; x=1686739254; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NMjoQ6t2aFRxmfNfu7Q0YEqH72acltcAQi6vXgz7/40=; b=FYt8AFmuyE+x8nAex8rHzdd/fG+VL+4zGEyjTptjXX3sF2wLBZ5JwC0kdhGehGMc1+ fjgPK8vfOXczVvZbebprNNwZup6Qn7oOwUcpjez4dYASOBC05L3x1eeNUXg+rej5Sn5C RauWwVgobyEfx/027+me3GnP1SnDZ+dhajHwQo59V6WXxuYnYsckeIProtVbQBpZiUZB G7VlX6LtXEBG3lwvPa36VIPmn/YZs52g37/AnHehphRZwc2LDMDE6T1QrXywnSVpW54w MzWSFJLQX8Kn2tn71xl+vlTuGCkHixMYmaRYm6Eldh7sNjYQvpuX2dFSFjHNn/dVPySx 8YfA== X-Gm-Message-State: AC+VfDxJeC8zuG/1maqJyROmTJKAthZ4DChkDXj6EH3WkgGEufpmXDEH Wmf5kC/nkPY0lGkK0ShYqKRlcavr4aI= X-Google-Smtp-Source: ACHHUZ7rwl/LmMB+euMJqrQ0aZKK1nXpntPMPxZphE+jkNqe9MRDQviyrS8TtaEkqWb4YvnrYgjZgA== X-Received: by 2002:aa7:88ce:0:b0:645:6142:7f5a with SMTP id k14-20020aa788ce000000b0064561427f5amr34853349pff.3.1684147253878; Mon, 15 May 2023 03:40:53 -0700 (PDT) Received: from rh-tp.c4p-in.ibmmobiledemo.com ([129.41.58.18]) by smtp.gmail.com with ESMTPSA id m14-20020aa7900e000000b006466d70a30esm11867078pfo.91.2023.05.15.03.40.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 May 2023 03:40:53 -0700 (PDT) From: "Ritesh Harjani (IBM)" To: linux-ext4@vger.kernel.org, Matthew Wilcox Cc: linux-fsdevel@vger.kernel.org, Ojaswin Mujoo , Disha Goel , "Ritesh Harjani (IBM)" Subject: [RFCv2 1/5] ext4: kill unused function ext4_journalled_write_inline_data Date: Mon, 15 May 2023 16:10:40 +0530 Message-Id: <122b2a8d5e0650686f23ed6da26ed9e04105562b.1684122756.git.ritesh.list@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Commit 3f079114bf522 ("ext4: Convert data=journal writeback to use ext4_writepages()") Added support for writeback of journalled data into ext4_writepages() and killed function __ext4_journalled_writepage() which used to call ext4_journalled_write_inline_data() for inline data. This function got left over by mistake. Hence kill it's definition as no one uses it. Reviewed-by: Matthew Wilcox (Oracle) Signed-off-by: Ritesh Harjani (IBM) --- fs/ext4/ext4.h | 4 ---- fs/ext4/inline.c | 24 ------------------------ 2 files changed, 28 deletions(-) diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 6948d673bba2..f9a58251ccea 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -3481,10 +3481,6 @@ extern int ext4_write_inline_data_end(struct inode *inode, loff_t pos, unsigned len, unsigned copied, struct page *page); -extern struct buffer_head * -ext4_journalled_write_inline_data(struct inode *inode, - unsigned len, - struct page *page); extern int ext4_da_write_inline_data_begin(struct address_space *mapping, struct inode *inode, loff_t pos, unsigned len, diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 5854bd5a3352..c0b2dc6514b2 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -823,30 +823,6 @@ int ext4_write_inline_data_end(struct inode *inode, loff_t pos, unsigned len, return ret ? ret : copied; } -struct buffer_head * -ext4_journalled_write_inline_data(struct inode *inode, - unsigned len, - struct page *page) -{ - int ret, no_expand; - void *kaddr; - struct ext4_iloc iloc; - - ret = ext4_get_inode_loc(inode, &iloc); - if (ret) { - ext4_std_error(inode->i_sb, ret); - return NULL; - } - - ext4_write_lock_xattr(inode, &no_expand); - kaddr = kmap_atomic(page); - ext4_write_inline_data(inode, &iloc, kaddr, 0, len); - kunmap_atomic(kaddr); - ext4_write_unlock_xattr(inode, &no_expand); - - return iloc.bh; -} - /* * Try to make the page cache and handle ready for the inline data case. * We can call this function in 2 cases: From patchwork Mon May 15 10:40:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ritesh Harjani (IBM)" X-Patchwork-Id: 13241257 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26686C7EE22 for ; Mon, 15 May 2023 10:41:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240485AbjEOKlA (ORCPT ); Mon, 15 May 2023 06:41:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240350AbjEOKk7 (ORCPT ); Mon, 15 May 2023 06:40:59 -0400 Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 111F51B8; Mon, 15 May 2023 03:40:58 -0700 (PDT) Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-643846c006fso13360037b3a.0; Mon, 15 May 2023 03:40:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684147257; x=1686739257; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GmGLmW3S8LQBrJuXQPeRYg8zvRh9RwXahnvoZneTmsk=; b=OTK0iOHOVFYd3iPy0ipNfqAyMR5brridi1K+yGpGYHxa/KnODdVA7MLp7utUqDsxnp zWHtw92vNWRvab832cjOOmOx2icp10NPQqp7vDKAKOSbCNEf4uMi4vERH7Ij8lkeNYZB BLqZoyBzhePW/u9jn3MCXabAc6TXGTYhk/BuhFeB0+R5uFaty5SD57KIL+/DXu4w1/N4 CQFP9ATbJSfGvegBJLuz8PoZ1DmXqknpufx/WfySiq4bW6khrr9sTFJVa0GsxcbPTh0L rPpTi784eDOVmfdX51qyHYtNAhzU54Y8mdKHsJunslyW90cjRTyJzRqg2x70Emkk0igM ixoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684147257; x=1686739257; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GmGLmW3S8LQBrJuXQPeRYg8zvRh9RwXahnvoZneTmsk=; b=adP3HmdFMTW0FZQ03pxbUf3Rd9YIcBrdvPyrBBFv3LKxJJoQPCNMR2Tw4lo5VbZakg azX5HQv7SfP5yBRuACLYU5Kq/JEP3FlKnygen2v+SkOSGxLdZ16MfKczstDSOP6SOLDA 9R59/xmnfAdh2lm2ZeFWiWQNGMLXGMSSURHH8IVu0fIyVeJOPw7CqpX4/sS6GgQzt+h+ WFF+l7DSMtdWengK5hv2Vda1GKyGATaghBUL4lOyQA+/6cef414SLFTvUgsaH0f4N0ee /FCqpOVQ/p8FE2b2vlBU42JERU641ByhwKDyFDB1uSQvMlnjc+j50SYgHTdD2oyviX5c rCTQ== X-Gm-Message-State: AC+VfDzriJoldchQUNRlGiFBihrx9m1zMUqkDsS1y3WjuwL11bzpJUq8 CwnXWJZpHvcEEXbPron0HizSkUS4phI= X-Google-Smtp-Source: ACHHUZ50hQHHMjp+/4dtdYrpG0Y2ACkeNLspvQy5Z7J+AgAJEg0R1YE5AAyR6vuR2wwm7BZkVqpE+Q== X-Received: by 2002:aa7:88ce:0:b0:645:cfb0:2779 with SMTP id k14-20020aa788ce000000b00645cfb02779mr29124620pff.26.1684147256606; Mon, 15 May 2023 03:40:56 -0700 (PDT) Received: from rh-tp.c4p-in.ibmmobiledemo.com ([129.41.58.18]) by smtp.gmail.com with ESMTPSA id m14-20020aa7900e000000b006466d70a30esm11867078pfo.91.2023.05.15.03.40.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 May 2023 03:40:56 -0700 (PDT) From: "Ritesh Harjani (IBM)" To: linux-ext4@vger.kernel.org, Matthew Wilcox Cc: linux-fsdevel@vger.kernel.org, Ojaswin Mujoo , Disha Goel , "Ritesh Harjani (IBM)" Subject: [RFCv2 2/5] ext4: Remove PAGE_SIZE assumption of folio from mpage_submit_folio Date: Mon, 15 May 2023 16:10:41 +0530 Message-Id: <74182f5607ccfc3b1e7f08737fcb3442b42a2124.1684122756.git.ritesh.list@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org mpage_submit_folio() was converted to take folio. Even though folio_size() in ext4 as of now is PAGE_SIZE, but it's better to remove that assumption which I am assuming is a missed left over from patch[1]. [1]: https://lore.kernel.org/linux-ext4/20230324180129.1220691-7-willy@infradead.org/ Signed-off-by: Ritesh Harjani (IBM) Reviewed-by: Matthew Wilcox (Oracle) --- fs/ext4/inode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index ce5f21b6c2b3..b9fa7c30a9a5 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1885,7 +1885,7 @@ static int mpage_submit_folio(struct mpage_da_data *mpd, struct folio *folio) len = folio_size(folio); if (folio_pos(folio) + len > size && !ext4_verity_in_progress(mpd->inode)) - len = size & ~PAGE_MASK; + len = size - folio_pos(folio); err = ext4_bio_write_folio(&mpd->io_submit, folio, len); if (!err) mpd->wbc->nr_to_write--; From patchwork Mon May 15 10:40:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ritesh Harjani (IBM)" X-Patchwork-Id: 13241258 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3F73EC77B7D for ; Mon, 15 May 2023 10:41:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240603AbjEOKlO (ORCPT ); Mon, 15 May 2023 06:41:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240556AbjEOKlE (ORCPT ); Mon, 15 May 2023 06:41:04 -0400 Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 738D51731; Mon, 15 May 2023 03:41:00 -0700 (PDT) Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-64a9335a8e7so19720453b3a.0; Mon, 15 May 2023 03:41:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684147259; x=1686739259; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lhHyuhMjD3iDjkhMsBeTFVgrKDu6FeVKj+zRjr50G2E=; b=bMaC4Pfl4Dotc82nwNUFMe6zsTxc2gX9wXKt+h9l6B8hQLNBLPSLU1W8U/z857ejkD k5MvMYGIrNXAKHjSzT+SjuzT0y06SOFpyewEqmoVdr3YzY0lEDiQF3gzAJaY6Z1zK5nP MboUHVymTr9qqNW70Y9yi0T1YVstLfNYKEDZfPYGGdj3P+28ug7ooDmudZim/W6vrEDV 1ecvVP+uRYycwKIlPRAuqz5dcS0ugTbfGWPl48iky28dIA9X2OAeFTwZkVpWSLjUcK2v Iu/owJHUtv8mxllzBbWXkrOFN9a+wbvflKQB7udaZfVgBcTqck4YUdNPKlU7pCJ13G7s cxvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684147259; x=1686739259; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lhHyuhMjD3iDjkhMsBeTFVgrKDu6FeVKj+zRjr50G2E=; b=OSCqGVE6RuPqLFWAgf+d2ZDrAT8ZtUJ79nRQWyfMqSHMBSTm8g5JB1Hh8B1LQ9T0w9 el1I/AkCvuEB6RafEWewygQcHK1ZqI0MNsUuF5q0kIENuGSGxyAJd1BU9wJpG+xo/FC3 aaYIuucxEx0StENfM2EYjVSeUE9FtYYTNvdFv+bm4N42UPGz8/4WcoxWm7et8xi6/IQ9 gPB+BaNP61+573uQEFB72MhOF1zM9u19aJmRMdYcwkEeBov1I1M2uRy/4X+RbCm5DuLR O+6naXHBDW9TzPq9fO/x9CTo/6+s/7Lzx5+ih0UTCJCahEeofuRn41Wd/uBTTjKxfjbO Ir5g== X-Gm-Message-State: AC+VfDxhCveLjSWK4tYnVPur4TDvo3QPdduflfkQ+Vc6Fahejgbppkw9 3NoJtQygYITMqQkKcuZMAvEt2iC485c= X-Google-Smtp-Source: ACHHUZ6iBcB6MzZpCLbTdjfU+T3rKZsCPoR2B1cn2KCgl2jDhHC0oN7xsN7zeVwfJtedGJO+DHEf7w== X-Received: by 2002:a05:6a00:198a:b0:643:5455:2577 with SMTP id d10-20020a056a00198a00b0064354552577mr35316026pfl.3.1684147259129; Mon, 15 May 2023 03:40:59 -0700 (PDT) Received: from rh-tp.c4p-in.ibmmobiledemo.com ([129.41.58.18]) by smtp.gmail.com with ESMTPSA id m14-20020aa7900e000000b006466d70a30esm11867078pfo.91.2023.05.15.03.40.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 May 2023 03:40:58 -0700 (PDT) From: "Ritesh Harjani (IBM)" To: linux-ext4@vger.kernel.org, Matthew Wilcox Cc: linux-fsdevel@vger.kernel.org, Ojaswin Mujoo , Disha Goel , "Ritesh Harjani (IBM)" Subject: [RFCv2 3/5] ext4: Change remaining tracepoints to use folio Date: Mon, 15 May 2023 16:10:42 +0530 Message-Id: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org ext4_readpage() is converted to ext4_read_folio() hence change the related tracepoint from trace_ext4_readpage(page) to trace_ext4_read_folio(folio). Do the same for trace_ext4_releasepage(page) to trace_ext4_release_folio(folio) As a minor bit of optimization to avoid an extra dereferencing, since both of the above functions already were dereferencing folio->mapping->host, hence change the tracepoint argument to take (inode, folio). Reviewed-by: Matthew Wilcox (Oracle) Signed-off-by: Ritesh Harjani (IBM) --- fs/ext4/inode.c | 7 ++++--- include/trace/events/ext4.h | 26 +++++++++++++------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index b9fa7c30a9a5..43b54aac1c65 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -3105,7 +3105,7 @@ static int ext4_read_folio(struct file *file, struct folio *folio) int ret = -EAGAIN; struct inode *inode = folio->mapping->host; - trace_ext4_readpage(&folio->page); + trace_ext4_read_folio(inode, folio); if (ext4_has_inline_data(inode)) ret = ext4_readpage_inline(inode, folio); @@ -3164,9 +3164,10 @@ static void ext4_journalled_invalidate_folio(struct folio *folio, static bool ext4_release_folio(struct folio *folio, gfp_t wait) { - journal_t *journal = EXT4_JOURNAL(folio->mapping->host); + struct inode *inode = folio->mapping->host; + journal_t *journal = EXT4_JOURNAL(inode); - trace_ext4_releasepage(&folio->page); + trace_ext4_release_folio(inode, folio); /* Page has dirty journalled data -> cannot release */ if (folio_test_checked(folio)) diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h index ebccf6a6aa1b..54cd509ced0f 100644 --- a/include/trace/events/ext4.h +++ b/include/trace/events/ext4.h @@ -560,10 +560,10 @@ TRACE_EVENT(ext4_writepages_result, (unsigned long) __entry->writeback_index) ); -DECLARE_EVENT_CLASS(ext4__page_op, - TP_PROTO(struct page *page), +DECLARE_EVENT_CLASS(ext4__folio_op, + TP_PROTO(struct inode *inode, struct folio *folio), - TP_ARGS(page), + TP_ARGS(inode, folio), TP_STRUCT__entry( __field( dev_t, dev ) @@ -573,29 +573,29 @@ DECLARE_EVENT_CLASS(ext4__page_op, ), TP_fast_assign( - __entry->dev = page->mapping->host->i_sb->s_dev; - __entry->ino = page->mapping->host->i_ino; - __entry->index = page->index; + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->index = folio->index; ), - TP_printk("dev %d,%d ino %lu page_index %lu", + TP_printk("dev %d,%d ino %lu folio_index %lu", MAJOR(__entry->dev), MINOR(__entry->dev), (unsigned long) __entry->ino, (unsigned long) __entry->index) ); -DEFINE_EVENT(ext4__page_op, ext4_readpage, +DEFINE_EVENT(ext4__folio_op, ext4_read_folio, - TP_PROTO(struct page *page), + TP_PROTO(struct inode *inode, struct folio *folio), - TP_ARGS(page) + TP_ARGS(inode, folio) ); -DEFINE_EVENT(ext4__page_op, ext4_releasepage, +DEFINE_EVENT(ext4__folio_op, ext4_release_folio, - TP_PROTO(struct page *page), + TP_PROTO(struct inode *inode, struct folio *folio), - TP_ARGS(page) + TP_ARGS(inode, folio) ); DECLARE_EVENT_CLASS(ext4_invalidate_folio_op, From patchwork Mon May 15 10:40:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ritesh Harjani (IBM)" X-Patchwork-Id: 13241259 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58184C7EE25 for ; Mon, 15 May 2023 10:41:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240365AbjEOKlP (ORCPT ); Mon, 15 May 2023 06:41:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240564AbjEOKlF (ORCPT ); Mon, 15 May 2023 06:41:05 -0400 Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C3C8FE6E; Mon, 15 May 2023 03:41:02 -0700 (PDT) Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-51b4ef5378bso11278282a12.1; Mon, 15 May 2023 03:41:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684147262; x=1686739262; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zgVI0rPM+Wkq02K4WoXfknpBOTvlMsN3UXnAERKIZK4=; b=RbV3lkIW+loD46ewNO7e7JWXGHWC1q2syIfyzBOZK9FDBXMNireBMkaaM3L1XdFjBc BEFYICnekj/XHjxL5oyZhZ14DzXEjU6UtY6oduaHmVqfMR2O48iPe59/lLS3KVVvmfxd cAsmtGffwHLWltJJ4qoIL4nGuFH7ZC0lO77tMZ3/IfNRtm5oyl8TE6cdkyW2wco9H1p7 DkjhLMujQIsZP5oDj/xUb0Uk+KsR5fyz+zVEaTGj1n6/27VN73Fjd1W3IiFNmyU8tk8m YkAdvxf+fAZctZ1leKk4sRR7vMsi990dUOXb681t2JJlNHNbuNV76LnnctIJF16H++6V qtxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684147262; x=1686739262; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zgVI0rPM+Wkq02K4WoXfknpBOTvlMsN3UXnAERKIZK4=; b=E4O2MO2V5zY6qgjmA68qe5KYf5WQ21UW/9J637qBlxgRvnPJt3K+0txPfJnWIo+gYf LqkxdPhxp72grAEvykQ52WtOdmrtU7aJwFeKQxuwZUT83asEFZj3kZq7djrj3mEUhAEs QseMHc6amG47LHI6oOEv9BJIyNoIgOsZcJPsMW3s32ZsCVN1qe5YtHBaNOI7yJLybHO7 7IGunP5tpM9dOj8Szcqwe1LHAGPgXNMZJBbkvrpneDxOfoGFs0FlveCISF55tlJ2ctRA yoJNTHXLa1DAzJHkO1YmN+JEWgboNcftlld5S7ROqg+GQwpnNaIxABhlm/ggwOHhVkAn VLsA== X-Gm-Message-State: AC+VfDxI1y2h6GOJn82YtWIHmKUFABwjgH2eSKFwu+4Xgf40eYdqobsy k2N+Xz51PAP5Cp1GohM18nlgaKJTq5E= X-Google-Smtp-Source: ACHHUZ4X0NLpe7Bv9xVu55wqitABoZOm8Fhj6MZ9j8POxUwCgZ4EUJF6vaLc4hiseyNNGaajJD4h1g== X-Received: by 2002:a05:6a20:9384:b0:105:f40f:c225 with SMTP id x4-20020a056a20938400b00105f40fc225mr4161492pzh.10.1684147261691; Mon, 15 May 2023 03:41:01 -0700 (PDT) Received: from rh-tp.c4p-in.ibmmobiledemo.com ([129.41.58.18]) by smtp.gmail.com with ESMTPSA id m14-20020aa7900e000000b006466d70a30esm11867078pfo.91.2023.05.15.03.40.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 May 2023 03:41:01 -0700 (PDT) From: "Ritesh Harjani (IBM)" To: linux-ext4@vger.kernel.org, Matthew Wilcox Cc: linux-fsdevel@vger.kernel.org, Ojaswin Mujoo , Disha Goel , "Ritesh Harjani (IBM)" Subject: [RFCv2 4/5] ext4: Make mpage_journal_page_buffers use folio Date: Mon, 15 May 2023 16:10:43 +0530 Message-Id: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org This patch converts mpage_journal_page_buffers() to use folio and also removes the PAGE_SIZE assumption. Signed-off-by: Ritesh Harjani (IBM) Reviewed-by: Matthew Wilcox (Oracle) --- fs/ext4/inode.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 43b54aac1c65..bd827af19b55 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -2321,11 +2321,11 @@ static int ext4_da_writepages_trans_blocks(struct inode *inode) MAX_WRITEPAGES_EXTENT_LEN + bpp - 1, bpp); } -static int ext4_journal_page_buffers(handle_t *handle, struct page *page, - int len) +static int ext4_journal_folio_buffers(handle_t *handle, struct folio *folio, + size_t len) { - struct buffer_head *page_bufs = page_buffers(page); - struct inode *inode = page->mapping->host; + struct buffer_head *page_bufs = folio_buffers(folio); + struct inode *inode = folio->mapping->host; int ret, err; ret = ext4_walk_page_buffers(handle, inode, page_bufs, 0, len, @@ -2334,7 +2334,7 @@ static int ext4_journal_page_buffers(handle_t *handle, struct page *page, NULL, write_end_fn); if (ret == 0) ret = err; - err = ext4_jbd2_inode_add_write(handle, inode, page_offset(page), len); + err = ext4_jbd2_inode_add_write(handle, inode, folio_pos(folio), len); if (ret == 0) ret = err; EXT4_I(inode)->i_datasync_tid = handle->h_transaction->t_tid; @@ -2344,22 +2344,20 @@ static int ext4_journal_page_buffers(handle_t *handle, struct page *page, static int mpage_journal_page_buffers(handle_t *handle, struct mpage_da_data *mpd, - struct page *page) + struct folio *folio) { struct inode *inode = mpd->inode; loff_t size = i_size_read(inode); - int len; + size_t len = folio_size(folio); - ClearPageChecked(page); + folio_clear_checked(folio); mpd->wbc->nr_to_write--; - if (page->index == size >> PAGE_SHIFT && + if (folio_pos(folio) + len > size && !ext4_verity_in_progress(inode)) - len = size & ~PAGE_MASK; - else - len = PAGE_SIZE; + len = size - folio_pos(folio); - return ext4_journal_page_buffers(handle, page, len); + return ext4_journal_folio_buffers(handle, folio, len); } /* @@ -2499,7 +2497,7 @@ static int mpage_prepare_extent_to_map(struct mpage_da_data *mpd) /* Pending dirtying of journalled data? */ if (folio_test_checked(folio)) { err = mpage_journal_page_buffers(handle, - mpd, &folio->page); + mpd, folio); if (err < 0) goto out; mpd->journalled_more_data = 1; @@ -6133,7 +6131,7 @@ vm_fault_t ext4_page_mkwrite(struct vm_fault *vmf) err = __block_write_begin(&folio->page, 0, len, ext4_get_block); if (!err) { ret = VM_FAULT_SIGBUS; - if (ext4_journal_page_buffers(handle, &folio->page, len)) + if (ext4_journal_folio_buffers(handle, folio, len)) goto out_error; } else { folio_unlock(folio); From patchwork Mon May 15 10:40:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ritesh Harjani (IBM)" X-Patchwork-Id: 13241260 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D0B1C7EE2D for ; Mon, 15 May 2023 10:41:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240575AbjEOKlQ (ORCPT ); Mon, 15 May 2023 06:41:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238641AbjEOKlM (ORCPT ); Mon, 15 May 2023 06:41:12 -0400 Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 137E9196; Mon, 15 May 2023 03:41:05 -0700 (PDT) Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-64395e741fcso13077768b3a.2; Mon, 15 May 2023 03:41:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684147264; x=1686739264; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=w1s/fpzNTihS5/5EOzSHIaLQ/HGTdRANGMzvbRQcFLM=; b=SWnVIzPHQqVxxyk+ju8xx27LVoZAsUdXsB73gAYADsV/Gd82rdmMFc/JGYu+glMbVp ONG91Z5ibGr3IJVJNS6P5k6ce6sWdz9ugKTweRIP+OXjXX1hJqSvr6hTku32Ua/INvfN Y88hJdzV/2/fTT+iUApKs0rURZ5YRKtf7WSIPaSVNfOysFuZHHFsHAVzdpE6ZPcsF+CP n7pCp6yxvMmV5fW7Vs+RPg9yHDcZx4lZ9OgJVqiSvblRN0I/Pg5W3hq4tNoD3OKMTsDA ntpUeiWRieLz9GeIDfNBXey6Fq15oy4lmgYZhHy7On6mQJi6M5Dsm9admbJxunf320/t 2BXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684147264; x=1686739264; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=w1s/fpzNTihS5/5EOzSHIaLQ/HGTdRANGMzvbRQcFLM=; b=Mjie5cmNqKuraJYQG7SXgMd21MdC83WkQXi/9z2FBKQ55bqwt/beA+jR2KE/8KuIvq WtvhBRGtd4N3cz9/2iLru4vzQyOncstR30Tlyn2ZqL6rN2wJiXzjFOcKPauoPQQzx1WN fPgaq1HI0RQrGbaU0YFZeO9/wkTZ7HheFC8VOBy1zMv8E8c/bXXgOmvi5QiZGYGgF16W W6qzZid6rYoPIw1b2/YhNB5bZOhCyT9JfoBa6wW7KMTbxOE9IO9xl44/NSv4ZFkQKSEd xGPqLUnzcs5xwCooWHsimVV72Hb8x1Ar3FOUy1Rp1LqcTadGvc+AjXgajg5jKKWvSeBJ L1qQ== X-Gm-Message-State: AC+VfDwsLxHOOsbYipY2nv2Q/w4KArlFtKrPR/wa/haiWRPTyO01UKyA POR308w9UBnLF/nXYnSdIkbWHk0JU1g= X-Google-Smtp-Source: ACHHUZ7h2ziHFqrcthAubQoe1FhQ/3SciDSPajWvgSj/vd10YlurwvASGX8cGpteVMjG4do8Jhzg3w== X-Received: by 2002:a05:6a21:78a7:b0:105:8d42:2622 with SMTP id bf39-20020a056a2178a700b001058d422622mr6760291pzc.41.1684147264150; Mon, 15 May 2023 03:41:04 -0700 (PDT) Received: from rh-tp.c4p-in.ibmmobiledemo.com ([129.41.58.18]) by smtp.gmail.com with ESMTPSA id m14-20020aa7900e000000b006466d70a30esm11867078pfo.91.2023.05.15.03.41.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 May 2023 03:41:03 -0700 (PDT) From: "Ritesh Harjani (IBM)" To: linux-ext4@vger.kernel.org, Matthew Wilcox Cc: linux-fsdevel@vger.kernel.org, Ojaswin Mujoo , Disha Goel , "Ritesh Harjani (IBM)" Subject: [RFCv2 5/5] ext4: Make ext4_write_inline_data_end() use folio Date: Mon, 15 May 2023 16:10:44 +0530 Message-Id: <1bcea771720ff451a5a59b3f1bcd5fae51cb7ce7.1684122756.git.ritesh.list@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org ext4_write_inline_data_end() is completely converted to work with folio. Also all callers of ext4_write_inline_data_end() already works on folio except ext4_da_write_end(). Mostly for consistency and saving few instructions maybe, this patch just converts ext4_da_write_end() to work with folio which makes the last caller of ext4_write_inline_data_end() also converted to work with folio. We then make ext4_write_inline_data_end() take folio instead of page. Reviewed-by: Matthew Wilcox (Oracle) Signed-off-by: Ritesh Harjani (IBM) --- fs/ext4/ext4.h | 6 ++---- fs/ext4/inline.c | 3 +-- fs/ext4/inode.c | 23 ++++++++++++++--------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index f9a58251ccea..19e3a880ea16 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -3477,10 +3477,8 @@ extern int ext4_try_to_write_inline_data(struct address_space *mapping, struct inode *inode, loff_t pos, unsigned len, struct page **pagep); -extern int ext4_write_inline_data_end(struct inode *inode, - loff_t pos, unsigned len, - unsigned copied, - struct page *page); +int ext4_write_inline_data_end(struct inode *inode, loff_t pos, unsigned len, + unsigned copied, struct folio *folio); extern int ext4_da_write_inline_data_begin(struct address_space *mapping, struct inode *inode, loff_t pos, unsigned len, diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index c0b2dc6514b2..f48183f91c87 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -741,9 +741,8 @@ int ext4_try_to_write_inline_data(struct address_space *mapping, } int ext4_write_inline_data_end(struct inode *inode, loff_t pos, unsigned len, - unsigned copied, struct page *page) + unsigned copied, struct folio *folio) { - struct folio *folio = page_folio(page); handle_t *handle = ext4_journal_current_handle(); int no_expand; void *kaddr; diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index bd827af19b55..3988e0be1270 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1287,7 +1287,8 @@ static int ext4_write_end(struct file *file, if (ext4_has_inline_data(inode) && ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)) - return ext4_write_inline_data_end(inode, pos, len, copied, page); + return ext4_write_inline_data_end(inode, pos, len, copied, + folio); copied = block_write_end(file, mapping, pos, len, copied, page, fsdata); /* @@ -1395,7 +1396,8 @@ static int ext4_journalled_write_end(struct file *file, BUG_ON(!ext4_handle_valid(handle)); if (ext4_has_inline_data(inode)) - return ext4_write_inline_data_end(inode, pos, len, copied, page); + return ext4_write_inline_data_end(inode, pos, len, copied, + folio); if (unlikely(copied < len) && !folio_test_uptodate(folio)) { copied = 0; @@ -2942,15 +2944,15 @@ static int ext4_da_write_begin(struct file *file, struct address_space *mapping, * Check if we should update i_disksize * when write to the end of file but not require block allocation */ -static int ext4_da_should_update_i_disksize(struct page *page, +static int ext4_da_should_update_i_disksize(struct folio *folio, unsigned long offset) { struct buffer_head *bh; - struct inode *inode = page->mapping->host; + struct inode *inode = folio->mapping->host; unsigned int idx; int i; - bh = page_buffers(page); + bh = folio_buffers(folio); idx = offset >> inode->i_blkbits; for (i = 0; i < idx; i++) @@ -2970,17 +2972,19 @@ static int ext4_da_write_end(struct file *file, loff_t new_i_size; unsigned long start, end; int write_mode = (int)(unsigned long)fsdata; + struct folio *folio = page_folio(page); if (write_mode == FALL_BACK_TO_NONDELALLOC) return ext4_write_end(file, mapping, pos, - len, copied, page, fsdata); + len, copied, &folio->page, fsdata); trace_ext4_da_write_end(inode, pos, len, copied); if (write_mode != CONVERT_INLINE_DATA && ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA) && ext4_has_inline_data(inode)) - return ext4_write_inline_data_end(inode, pos, len, copied, page); + return ext4_write_inline_data_end(inode, pos, len, copied, + folio); if (unlikely(copied < len) && !PageUptodate(page)) copied = 0; @@ -3004,10 +3008,11 @@ static int ext4_da_write_end(struct file *file, */ new_i_size = pos + copied; if (copied && new_i_size > inode->i_size && - ext4_da_should_update_i_disksize(page, end)) + ext4_da_should_update_i_disksize(folio, end)) ext4_update_i_disksize(inode, new_i_size); - return generic_write_end(file, mapping, pos, len, copied, page, fsdata); + return generic_write_end(file, mapping, pos, len, copied, &folio->page, + fsdata); } /* From patchwork Tue May 16 19:27:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13243568 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF99CC77B7A for ; Tue, 16 May 2023 19:27:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229607AbjEPT11 (ORCPT ); Tue, 16 May 2023 15:27:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52022 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229572AbjEPT10 (ORCPT ); Tue, 16 May 2023 15:27:26 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B46F935AD; Tue, 16 May 2023 12:27:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=6ZrPYDjwLGlRaReyRClDuqn4qyu9lZUT+0fYgFgPHu0=; b=d9EZO9asjupb3jlC/brALJtbtQ 0uTLJKKO/MBmoyBlZFNzPjU5vpkp7nzh0TEEqF8F96GaTWqQXGVFWeILRLRtOHx3EDHY0fz4kjZl2 zEyXiWoTA4L/JsClBdSg3fWJgxokSlu/olWCz90JAL+BtFW3tiB3nVC4HLP/UCmAhlgpQ+p7tOWfA VOPYmYFPO7v7Ffd4UBuraYVz+UOixrLKtwq2D8LLBvZPx01ZWc4QQkDrwojm2TwfuKxWW+rJcdUPR 0MxfVjh2P7DlyXqomzBQ8swQAdBZBcq759vVD/RjAsvztddgSxdioiksfUnKA/8Mqvy0JnZPHOqi7 w60ndHdw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pz0KR-004UVv-7Y; Tue, 16 May 2023 19:27:23 +0000 From: "Matthew Wilcox (Oracle)" To: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, Ojaswin Mujoo , Disha Goel , "Ritesh Harjani (IBM)" Cc: "Matthew Wilcox (Oracle)" , Eric Biggers Subject: [PATCH 6/5] ext4: Call fsverity_verify_folio() Date: Tue, 16 May 2023 20:27:13 +0100 Message-Id: <20230516192713.1070469-1-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Now that fsverity supports working on entire folios, call fsverity_verify_folio() instead of fsverity_verify_page() Reported-by: Eric Biggers Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Ritesh Harjani (IBM) Reviewed-by: Eric Biggers --- fs/ext4/readpage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c index 6f46823fba61..3e7d160f543f 100644 --- a/fs/ext4/readpage.c +++ b/fs/ext4/readpage.c @@ -334,7 +334,7 @@ int ext4_mpage_readpages(struct inode *inode, folio_size(folio)); if (first_hole == 0) { if (ext4_need_verity(inode, folio->index) && - !fsverity_verify_page(&folio->page)) + !fsverity_verify_folio(folio)) goto set_error_page; folio_mark_uptodate(folio); folio_unlock(folio);