{"id":2215730,"url":"http://patchwork.ozlabs.org/api/patches/2215730/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/patch/20260325072850.3997161-2-yi.zhang@huaweicloud.com/","project":{"id":8,"url":"http://patchwork.ozlabs.org/api/projects/8/?format=json","name":"Linux ext4 filesystem development","link_name":"linux-ext4","list_id":"linux-ext4.vger.kernel.org","list_email":"linux-ext4@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260325072850.3997161-2-yi.zhang@huaweicloud.com>","list_archive_url":null,"date":"2026-03-25T07:28:40","name":"[v2,01/10] ext4: add did_zero output parameter to ext4_block_zero_page_range()","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"8fbe41faa41586aa97438eadd2d65cc2d965b597","submitter":{"id":85428,"url":"http://patchwork.ozlabs.org/api/people/85428/?format=json","name":"Zhang Yi","email":"yi.zhang@huaweicloud.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-ext4/patch/20260325072850.3997161-2-yi.zhang@huaweicloud.com/mbox/","series":[{"id":497391,"url":"http://patchwork.ozlabs.org/api/series/497391/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/list/?series=497391","date":"2026-03-25T07:28:44","name":"ext4: refactor partial block zero-out for iomap conversion","version":2,"mbox":"http://patchwork.ozlabs.org/series/497391/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2215730/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2215730/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <SRS0=LGSe=BZ=vger.kernel.org=linux-ext4+bounces-15337-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=lgse=bz=vger.kernel.org=linux-ext4+bounces-15337-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c0a:e001:db::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=none (p=none dis=none) header.from=huaweicloud.com","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15337-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=45.249.212.51","smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=huaweicloud.com","smtp.subspace.kernel.org;\n spf=none smtp.mailfrom=huaweicloud.com"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fgfLm0xF1z1y1G\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 18:54:23 +1100 (AEDT)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fgfLl4m3Lz4wB7\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 18:54:23 +1100 (AEDT)","by gandalf.ozlabs.org (Postfix)\n\tid 4fgfLl4f3yz4wF0; Wed, 25 Mar 2026 18:54:23 +1100 (AEDT)","from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fgfLh0PKgz4wB7\n\tfor <patchwork-incoming@ozlabs.org>; Wed, 25 Mar 2026 18:54:20 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 9AF073053B94\n\tfor <patchwork-incoming@ozlabs.org>; Wed, 25 Mar 2026 07:53:35 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 327313909B6;\n\tWed, 25 Mar 2026 07:53:28 +0000 (UTC)","from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com\n [45.249.212.51])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 49630391E7F;\n\tWed, 25 Mar 2026 07:53:19 +0000 (UTC)","from mail.maildlp.com (unknown [172.19.163.170])\n\tby dggsgout11.his.huawei.com (SkyGuard) with ESMTPS id 4fgdtd1RPqzYQtwW;\n\tWed, 25 Mar 2026 15:33:29 +0800 (CST)","from mail02.huawei.com (unknown [10.116.40.112])\n\tby mail.maildlp.com (Postfix) with ESMTP id 317124056E;\n\tWed, 25 Mar 2026 15:33:39 +0800 (CST)","from huaweicloud.com (unknown [10.50.85.155])\n\tby APP1 (Coremail) with SMTP id cCh0CgAHC9vFj8NpuR6cCA--.49898S5;\n\tWed, 25 Mar 2026 15:33:38 +0800 (CST)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1774425263; cv=pass;\n\tb=l7gSVA3PLZHfO0WgqwnaYKCtxvb6DZKHVAGTI5hioiHKoJ/hVSEwJ8PJd19XbAZ7noaT5MxvxwSMdViqv9QXgj/FYln+SIfYfYuAkuHuGoGky1Rjkez8tqlUQpQiExxW2X3NyXpbu87qqdpAZlwxJPfllRpa0Kl5XfMznKyWO+A+Y0gax2SzrULONeaa0LlRK/lejDIqpQu7qL9N/vG77blj6uENqFXH7+TvwV/18thlTjofamdvNP28jJOpGU/Amn8GcIUBSjOTJ+C/iIza+KuSrbWhnLGbHI48hZEd56bOSG61Jxuz/HORcpHhjbKOFFPLt+2blnGcVu/zDStUMw==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774425207; cv=none;\n b=cEemHlLUkAFOe/fWFxm6lWwDV7WSuzTPmerwiOx6K1YBeNFFRidSpLY4EL90j3R6pV7ntSVeYrlAySwMC3QcxR6Nrv690QooscxHTPU56C22KNUo0CeMCIMPWTqv+qInkvC2KX6t6La8EZKArVPTj+ISyify/6BA8D4JMHSbnxs="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1774425263; c=relaxed/relaxed;\n\tbh=8HIwxjOuXqrM81C2iHkwkterbPh5JVv+MGQ+qFgFkuk=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=qZ1MFHJPaSl3JtHZ0KHS935hHcXhSVbyEhWs8U/EpL0/KXlKXU2QJgXUZJHiUtszN2E65RqFk+ASeBCN4kR5oxzZWzNIEel0x7k2O55w3B0OQxeo4gSXvgMfjndrguHcpdZIzJ6Id8EvkT4eY08vrthcYGYIi4q7oo251h1SiLbLLaVXNfJT4GEf9lPntiK4pYp3v06Pa10S5N+E/PjT7AE2worR6JIKjkMB1e2UsGKti40ZmDKaUoq7ck/13OqE6pPJWGSZVSFjUcOjyJa3FnRuax1Dmz38+pZLbahbU18r6wSEpsPwypn3+nzJ/MhS+M7DPqNR988B1ISRo/aGKg==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774425207; c=relaxed/simple;\n\tbh=viFvCHynwN2QwKfgVv4CMz86s7mPdhW8AzLlTm4Rt7I=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=XGkDnt4tFs/+svo03dILbZOzf/CTUebegkgli2ffh70FI+lsyvzzlLumA2qwnUfF3aHGeVNGTrA33DhhWyaUs64cqFpISVbaeMvGsZHquLzOzdTo2UIewbSP4t/iwL//o1mTTRN8bY8JCXlShOh38G+Pha22afl88M1VqwNiVUQ="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=none (p=none dis=none) header.from=huaweicloud.com;\n spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15337-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=huaweicloud.com;\n spf=none smtp.mailfrom=huaweicloud.com; arc=none smtp.client-ip=45.249.212.51"],"From":"Zhang Yi <yi.zhang@huaweicloud.com>","To":"linux-ext4@vger.kernel.org","Cc":"linux-fsdevel@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\ttytso@mit.edu,\n\tadilger.kernel@dilger.ca,\n\tjack@suse.cz,\n\tojaswin@linux.ibm.com,\n\tritesh.list@gmail.com,\n\tlibaokun@linux.alibaba.com,\n\tyi.zhang@huawei.com,\n\tyi.zhang@huaweicloud.com,\n\tyizhang089@gmail.com,\n\tyangerkun@huawei.com,\n\tyukuai@fnnas.com","Subject":"[PATCH v2 01/10] ext4: add did_zero output parameter to\n ext4_block_zero_page_range()","Date":"Wed, 25 Mar 2026 15:28:40 +0800","Message-ID":"<20260325072850.3997161-2-yi.zhang@huaweicloud.com>","X-Mailer":"git-send-email 2.52.0","In-Reply-To":"<20260325072850.3997161-1-yi.zhang@huaweicloud.com>","References":"<20260325072850.3997161-1-yi.zhang@huaweicloud.com>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-CM-TRANSID":"cCh0CgAHC9vFj8NpuR6cCA--.49898S5","X-Coremail-Antispam":"1UD129KBjvJXoWxCF17XryfAw18KF1rKw15Jwb_yoW5uw1xpr\n\ty5t345ur47u34q9F4xWF1jvr1Sk3Z3GFW8W3y3G3s0v3yIq3WxKF95K3WFvF4jg3y7Xay0\n\tqF4Yy3y2gw1UArJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2\n\t9KBjDU0xBIdaVrnRJUUUm014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0\n\trVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jr4l82xGYIkIc2\n\tx26xkF7I0E14v26r4j6ryUM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0\n\tY4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJw\n\tA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS\n\t0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2\n\tIY67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0\n\tY48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2\n\txKxwCY1x0262kKe7AKxVWUtVW8ZwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWU\n\tJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67\n\tkF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY\n\t6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0x\n\tvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVj\n\tvjDU0xZFpf9x0JUfKs8UUUUU=","X-CM-SenderInfo":"d1lo6xhdqjqx5xdzvxpfor3voofrz/","X-Spam-Status":"No, score=-1.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDMARC_MISSING,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,\n\tSPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"},"content":"From: Zhang Yi <yi.zhang@huawei.com>\n\nAdd a bool *did_zero output parameter to ext4_block_zero_page_range()\nand __ext4_block_zero_page_range(). The parameter reports whether a\npartial block was zeroed out, which is needed for the upcoming iomap\nbuffered I/O conversion.\n\nSigned-off-by: Zhang Yi <yi.zhang@huawei.com>\nReviewed-by: Jan Kara <jack@suse.cz>\n---\n fs/ext4/inode.c | 23 ++++++++++++++---------\n 1 file changed, 14 insertions(+), 9 deletions(-)","diff":"diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c\nindex af6d1759c8de..1c9474d5d11d 100644\n--- a/fs/ext4/inode.c\n+++ b/fs/ext4/inode.c\n@@ -4003,7 +4003,8 @@ void ext4_set_aops(struct inode *inode)\n  * racing writeback can come later and flush the stale pagecache to disk.\n  */\n static int __ext4_block_zero_page_range(handle_t *handle,\n-\t\tstruct address_space *mapping, loff_t from, loff_t length)\n+\t\tstruct address_space *mapping, loff_t from, loff_t length,\n+\t\tbool *did_zero)\n {\n \tunsigned int offset, blocksize, pos;\n \text4_lblk_t iblock;\n@@ -4091,6 +4092,8 @@ static int __ext4_block_zero_page_range(handle_t *handle,\n \t\t\terr = ext4_jbd2_inode_add_write(handle, inode, from,\n \t\t\t\t\tlength);\n \t}\n+\tif (!err && did_zero)\n+\t\t*did_zero = true;\n \n unlock:\n \tfolio_unlock(folio);\n@@ -4106,7 +4109,8 @@ static int __ext4_block_zero_page_range(handle_t *handle,\n  * that corresponds to 'from'\n  */\n static int ext4_block_zero_page_range(handle_t *handle,\n-\t\tstruct address_space *mapping, loff_t from, loff_t length)\n+\t\tstruct address_space *mapping, loff_t from, loff_t length,\n+\t\tbool *did_zero)\n {\n \tstruct inode *inode = mapping->host;\n \tunsigned blocksize = inode->i_sb->s_blocksize;\n@@ -4120,10 +4124,11 @@ static int ext4_block_zero_page_range(handle_t *handle,\n \t\tlength = max;\n \n \tif (IS_DAX(inode)) {\n-\t\treturn dax_zero_range(inode, from, length, NULL,\n+\t\treturn dax_zero_range(inode, from, length, did_zero,\n \t\t\t\t      &ext4_iomap_ops);\n \t}\n-\treturn __ext4_block_zero_page_range(handle, mapping, from, length);\n+\treturn __ext4_block_zero_page_range(handle, mapping, from, length,\n+\t\t\t\t\t    did_zero);\n }\n \n /*\n@@ -4146,7 +4151,7 @@ static int ext4_block_truncate_page(handle_t *handle,\n \tblocksize = i_blocksize(inode);\n \tlength = blocksize - (from & (blocksize - 1));\n \n-\treturn ext4_block_zero_page_range(handle, mapping, from, length);\n+\treturn ext4_block_zero_page_range(handle, mapping, from, length, NULL);\n }\n \n int ext4_zero_partial_blocks(handle_t *handle, struct inode *inode,\n@@ -4169,13 +4174,13 @@ int ext4_zero_partial_blocks(handle_t *handle, struct inode *inode,\n \tif (start == end &&\n \t    (partial_start || (partial_end != sb->s_blocksize - 1))) {\n \t\terr = ext4_block_zero_page_range(handle, mapping,\n-\t\t\t\t\t\t lstart, length);\n+\t\t\t\t\t\t lstart, length, NULL);\n \t\treturn err;\n \t}\n \t/* Handle partial zero out on the start of the range */\n \tif (partial_start) {\n-\t\terr = ext4_block_zero_page_range(handle, mapping,\n-\t\t\t\t\t\t lstart, sb->s_blocksize);\n+\t\terr = ext4_block_zero_page_range(handle, mapping, lstart,\n+\t\t\t\t\t\t sb->s_blocksize, NULL);\n \t\tif (err)\n \t\t\treturn err;\n \t}\n@@ -4183,7 +4188,7 @@ int ext4_zero_partial_blocks(handle_t *handle, struct inode *inode,\n \tif (partial_end != sb->s_blocksize - 1)\n \t\terr = ext4_block_zero_page_range(handle, mapping,\n \t\t\t\t\t\t byte_end - partial_end,\n-\t\t\t\t\t\t partial_end + 1);\n+\t\t\t\t\t\t partial_end + 1, NULL);\n \treturn err;\n }\n \n","prefixes":["v2","01/10"]}