Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2226008/?format=api
{ "id": 2226008, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2226008/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20260422021042.4157510-8-yi.zhang@huaweicloud.com/", "project": { "id": 8, "url": "http://patchwork.ozlabs.org/api/1.2/projects/8/?format=api", "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": "<20260422021042.4157510-8-yi.zhang@huaweicloud.com>", "list_archive_url": null, "date": "2026-04-22T02:10:27", "name": "[v3,07/22] ext4: do not use data=ordered mode for inodes using buffered iomap path", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "39ea654dfd8325db521797e90ff657b849222a98", "submitter": { "id": 85428, "url": "http://patchwork.ozlabs.org/api/1.2/people/85428/?format=api", "name": "Zhang Yi", "email": "yi.zhang@huaweicloud.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20260422021042.4157510-8-yi.zhang@huaweicloud.com/mbox/", "series": [ { "id": 500911, "url": "http://patchwork.ozlabs.org/api/1.2/series/500911/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/list/?series=500911", "date": "2026-04-22T02:10:23", "name": "ext4: use iomap for regular file's buffered I/O path", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/500911/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2226008/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2226008/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <SRS0=g2+8=CV=vger.kernel.org=linux-ext4+bounces-15970-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=150.107.74.76; helo=mail.ozlabs.org;\n envelope-from=srs0=g2+8=cv=vger.kernel.org=linux-ext4+bounces-15970-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)", "gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=172.234.253.10 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=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15970-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=45.249.212.56", "smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=huaweicloud.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=huaweicloud.com" ], "Received": [ "from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76])\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 4g0jbr1tFqz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 12:19:52 +1000 (AEST)", "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4g0jbr1Rkjz4wK3\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 12:19:52 +1000 (AEST)", "by gandalf.ozlabs.org (Postfix)\n\tid 4g0jbr1M4Gz4wJh; Wed, 22 Apr 2026 12:19:52 +1000 (AEST)", "from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\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 4g0jbm4zzcz4wK3\n\tfor <patchwork-incoming@ozlabs.org>; Wed, 22 Apr 2026 12:19:48 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id E66D130641F8\n\tfor <patchwork-incoming@ozlabs.org>; Wed, 22 Apr 2026 02:17:13 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id E317D33123D;\n\tWed, 22 Apr 2026 02:17:01 +0000 (UTC)", "from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com\n [45.249.212.56])\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 10EB530F938;\n\tWed, 22 Apr 2026 02:16:59 +0000 (UTC)", "from mail.maildlp.com (unknown [172.19.163.198])\n\tby dggsgout12.his.huawei.com (SkyGuard) with ESMTPS id 4g0jX41WdBzKHMS4;\n\tWed, 22 Apr 2026 10:16:36 +0800 (CST)", "from mail02.huawei.com (unknown [10.116.40.252])\n\tby mail.maildlp.com (Postfix) with ESMTP id 3D57640605;\n\tWed, 22 Apr 2026 10:16:56 +0800 (CST)", "from huaweicloud.com (unknown [10.50.85.155])\n\tby APP3 (Coremail) with SMTP id _Ch0CgB3JL6PL+hpqkgUBQ--.2635S11;\n\tWed, 22 Apr 2026 10:16:55 +0800 (CST)" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776824392; cv=pass;\n\tb=Zmq2a854EmJDQwjl1eiC8afqnyJIy9xjHz91d0e1/6ksD4dT0H3FypLaJm3tYsOWhPMeIYogIodiryIthDPJmhJDRl53mSTQWJCs39HpQllYkO/SX0s14Lj7sHkJoDYkiEAmEkMNxITd5jfsOJvoE4okfvfGJ6PjgIsj1RV3YaguanIfgDq6rF2kG2b3O6iDV2oHgrp+5cMLV8cNDfITl1yqhC69nDUZA3rFPJr8P0ZZBqS/2lZnFgDbFnZ4y9dtcq6xitDLkgxMezBOzWtWjfh3JRg3EyJbBy+rsgr1HKbAtxvVtXMbrDEMukKzILyEhPtNwyddzSg7S1b1vvahlw==", "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776824221; cv=none;\n b=Wd/OVerq5FH2tsCuEUJNROXBQZMSf/mVhyGoyAXskG74vrLjGM+s2DaLoRZQ6ZOzqhr2Hc93umN1xKojHv3oT06TMqrOLcAnWBrrfpNo+x2E6RfRCXKDSCD6oBkFF2UEdNRYVETPv42/C+o+5MLbMiv4eJ6HbeOVibQT/o4CuAw=" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776824392; c=relaxed/relaxed;\n\tbh=+nK88dJAR7qLGowrIBzPDO9o2xFUWId4z84ekIyyTHg=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=l6F7LWE441/7tDQcnRr5Ji+QjsYW1GYkk35jrHvjz9VmNM5R6nF6oCuYijDasgnnkI/PP0VI4z2YwbUgV0NrSbaof7DDMIBYrn9CXkV9UXGU9JR6bXK2lsZocBHCmsWn/xK7gXA6LIdHnNFZy13KV/TFaSS6I+Ut1L/+zwBf2JXRbJm2WwZyRxhsAnmjAZMdryAImWXj/FTJX3LmEb1LDscBtfkMM1NhvrOEWau6wv5oY6IXaTrIydKii7gi+TL9uUtmqAjmlvS0ET6fj/Y5OTeUaAk+R1nSHpAeydbnDk1IF4pdJYkPEW23Ck5HP+AAcBl5RgzPjnuFPVj6nyNrbQ==", "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776824221; c=relaxed/simple;\n\tbh=J6TPc/ZuvZyAI7NvDmtzSyRLjPtrL2PL7n1prHF0gKo=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=Zp+4RO4f3dX6gN4Jj0Wzj/khdZGKLxtruDQzClT3CSs8tTfZ6S2GLVhojU+s6jKAQY17wrDzsgy4IeQV2mxdquSbCWKmwnzL2gmjYflaSPq4JceQzhELL79XRRYusdJJWmToAfI20OU17H4/iFmiUHiKkn0+dWcNrpZ+/7gyg1w=" ], "ARC-Authentication-Results": [ "i=2; gandalf.ozlabs.org;\n dmarc=none (p=none dis=none) header.from=huaweicloud.com;\n spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15970-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=pass smtp.mailfrom=huaweicloud.com; arc=none smtp.client-ip=45.249.212.56" ], "From": "Zhang Yi <yi.zhang@huaweicloud.com>", "To": "linux-ext4@vger.kernel.org,\n\tlinux-fsdevel@vger.kernel.org", "Cc": "linux-kernel@vger.kernel.org,\n\ttytso@mit.edu,\n\tadilger.kernel@dilger.ca,\n\tlibaokun@linux.alibaba.com,\n\tjack@suse.cz,\n\tojaswin@linux.ibm.com,\n\tritesh.list@gmail.com,\n\tdjwong@kernel.org,\n\thch@infradead.org,\n\tyi.zhang@huawei.com,\n\tyi.zhang@huaweicloud.com,\n\tyizhang089@gmail.com,\n\tyangerkun@huawei.com,\n\tyukuai@fnnas.com", "Subject": "[PATCH v3 07/22] ext4: do not use data=ordered mode for inodes using\n buffered iomap path", "Date": "Wed, 22 Apr 2026 10:10:27 +0800", "Message-ID": "<20260422021042.4157510-8-yi.zhang@huaweicloud.com>", "X-Mailer": "git-send-email 2.52.0", "In-Reply-To": "<20260422021042.4157510-1-yi.zhang@huaweicloud.com>", "References": "<20260422021042.4157510-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": "_Ch0CgB3JL6PL+hpqkgUBQ--.2635S11", "X-Coremail-Antispam": "1UD129KBjvJXoWxZr1fJFW8tw43CFWrury7GFg_yoW5CrWfpF\n\tW5K345JrWvva47Cr4xuF4Iqr1ay3yrJr47JFy7GFZrua98J3WIkFy8tF1Yya4UKrWfG3W2\n\tqr4UGrWxWFs0yrJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2\n\t9KBjDU0xBIdaVrnRJUUUmS14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0\n\trVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI\n\tkIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2\n\tz4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F\n\t4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq\n\t3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7\n\tIYx2IY67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4U\n\tM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2\n\tkIc2xKxwCY1x0262kKe7AKxVWUtVW8ZwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkE\n\tbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67\n\tAF67kF1VAFwI0_GFv_WrylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI\n\t42IY6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF\n\t4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBI\n\tdaVFxhVjvjDU0xZFpf9x0JUWMKtUUUUU=", "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\nDo not use data=ordered mode for inodes using the buffered iomap path.\nThere are two reasons:\n\n1. The lock ordering of the folio lock and starting transactions\n conflicts with the data=ordered mode. In the writeback path of the\n iomap, it processes each folio one by one. It first holds the folio\n lock and then starts a transaction to create the block mapping. In\n the data=ordered mode, if we perform writeback through the journal\n commit process, it may try to acquire the folio lock of a folio\n already locked by iomap, and the iomap could start a new transaction\n under this folio lock, which may also wait for the current committing\n transaction to finish, finally triggering a deadlock.\n2. The iomap writeback path doesn't support partial folio submission. In\n the data=ordered mode, when the journal process is waiting for a\n folio to be written back, and the folio may also contain unmapped\n blocks with a block size smaller than the folio size, if the regular\n writeback process has already started committing this folio (and set\n the writeback flag), then a deadlock may occur while mapping the\n remaining unmapped blocks. This is because the writeback flag is\n cleared only after the entire folio are processed and committed.\n\nTo support the data=ordered mode, we need to modify the iomap\ninfrastructure by grabbing the transaction handle before we lock any\nfolio for writeback. In addition, we need to add support for submitting\npartial folios, which is complicated and tricky, and may also cause\nperformance regressions. Therefore, we need to get rid of the\ndata=ordered mode when doing the conversion.\n\nCurrently, there are three scenarios where the data=ordered mode is used:\n\n - Append write\n - Post-EOF partial block truncate up and append write\n - Online defragmentation\n\nFor append write, we can get rid of it by always allocating unwritten\nblocks, retains the behavior of the current extents-type inode. For\npost-E0F partial block truncate up and append write, we can get rid of\nit by postponing updating i_disksize after the zeroed partial block is\nwritten back. For the case of online defragmentation, it has not yet\nbeen supported, we can find other solutions later.\n\nSigned-off-by: Zhang Yi <yi.zhang@huawei.com>\n---\n fs/ext4/ext4_jbd2.h | 7 ++++++-\n 1 file changed, 6 insertions(+), 1 deletion(-)", "diff": "diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h\nindex 63d17c5201b5..26999f173870 100644\n--- a/fs/ext4/ext4_jbd2.h\n+++ b/fs/ext4/ext4_jbd2.h\n@@ -383,7 +383,12 @@ static inline int ext4_should_journal_data(struct inode *inode)\n \n static inline int ext4_should_order_data(struct inode *inode)\n {\n-\treturn ext4_inode_journal_mode(inode) & EXT4_INODE_ORDERED_DATA_MODE;\n+\t/*\n+\t * inodes using the iomap buffered I/O path do not use the\n+\t * data=ordered mode.\n+\t */\n+\treturn !ext4_inode_buffered_iomap(inode) &&\n+\t\t(ext4_inode_journal_mode(inode) & EXT4_INODE_ORDERED_DATA_MODE);\n }\n \n static inline int ext4_should_writeback_data(struct inode *inode)\n", "prefixes": [ "v3", "07/22" ] }