Show a cover letter.

GET /api/1.0/covers/2198114/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2198114,
    "url": "http://patchwork.ozlabs.org/api/1.0/covers/2198114/?format=api",
    "project": {
        "id": 8,
        "url": "http://patchwork.ozlabs.org/api/1.0/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
    },
    "msgid": "<20260219114645.778338-1-me@linux.beauty>",
    "date": "2026-02-19T11:46:41",
    "name": "[v2,0/3] jbd2/ext4/ocfs2: lockless jinode dirty range",
    "submitter": {
        "id": 84264,
        "url": "http://patchwork.ozlabs.org/api/1.0/people/84264/?format=api",
        "name": "Li Chen",
        "email": "me@linux.beauty"
    },
    "series": [
        {
            "id": 492665,
            "url": "http://patchwork.ozlabs.org/api/1.0/series/492665/?format=api",
            "date": "2026-02-19T11:46:41",
            "name": "jbd2/ext4/ocfs2: lockless jinode dirty range",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/492665/mbox/"
        }
    ],
    "headers": {
        "Return-Path": "\n <SRS0=YJMg=AX=vger.kernel.org=linux-ext4+bounces-13743-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\tdkim=pass (1024-bit key;\n unprotected) header.d=linux.beauty header.i=me@linux.beauty\n header.a=rsa-sha256 header.s=zmail header.b=ggG1Tq4C;\n\tdkim-atps=neutral",
            "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=yjmg=ax=vger.kernel.org=linux-ext4+bounces-13743-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)",
            "gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=172.105.105.114\n arc.chain=\"subspace.kernel.org:zohomail.com\"",
            "gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=linux.beauty",
            "gandalf.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=linux.beauty header.i=me@linux.beauty\n header.a=rsa-sha256 header.s=zmail header.b=ggG1Tq4C;\n\tdkim-atps=neutral",
            "gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-ext4+bounces-13743-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=linux.beauty header.i=me@linux.beauty\n header.b=\"ggG1Tq4C\"",
            "smtp.subspace.kernel.org;\n arc=pass smtp.client-ip=136.143.188.15",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.beauty",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linux.beauty"
        ],
        "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 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fGs7r52yZz1xvg\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 19 Feb 2026 22:47:52 +1100 (AEDT)",
            "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fGs7q0Twcz4w8w\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 19 Feb 2026 22:47:51 +1100 (AEDT)",
            "by gandalf.ozlabs.org (Postfix)\n\tid 4fGs7q0Nm4z4w1v; Thu, 19 Feb 2026 22:47:51 +1100 (AEDT)",
            "from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\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 4fGs7k6Vc1z4w8w\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 19 Feb 2026 22:47:46 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 34D833019476\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 19 Feb 2026 11:47:45 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id BD6B5304BDA;\n\tThu, 19 Feb 2026 11:47:43 +0000 (UTC)",
            "from sender4-op-o15.zoho.com (sender4-op-o15.zoho.com\n [136.143.188.15])\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 7628E2EFD86;\n\tThu, 19 Feb 2026 11:47:42 +0000 (UTC)",
            "by mx.zohomail.com with SMTPS id 1771501620323406.1365783165696;\n\tThu, 19 Feb 2026 03:47:00 -0800 (PST)"
        ],
        "ARC-Seal": [
            "i=3; a=rsa-sha256; d=ozlabs.org; s=201707; t=1771501671; cv=pass;\n\tb=JtLrqCSBQNksiMPs9O22egs3sWDohCd2V4KCTjr9pX4LGWvUQX9I/buV3lR7IB89vTzq0WHgk75i64FYmz87vah6QWIF40otxQbYHHQ6zxB62KNw2jnGV+IOLmxqNR8p8Z6bwMC46jT3yEuVHBT/x1xyYn6b6F9SoEwM7yuadDNvY19LNOqSpAcRyHrb7Gk5s/MRWwp4NFKFhMcIfquaHgiD0/Yp98kf+f9/NVA0c2mDBDc2D/NCEmPyIo9daJYM6KLPuZBxXjVxqsJOl2qavEbKwOhbgQJmj6nTKq9k1rPI2uz+47XJaago3ko1tEWq0cd9Bow+x/xfMniIxcYASQ==",
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771501663; cv=pass;\n b=Lglz7VHOBJ9HQMn70m8oujdhjAjxm3ReyIpIXRpS/Nv9WyXFTIXXXBiNDvrM4UXUOUAR0MQCMmliP9HgmC0hhJCPssxY9V2LUf+yovxSRoUgzI0A23TY0BPY2hXxj+1f+ValCqg76yMwQ46TanVi+utXX2DC8b/GaefzASy7wmg=",
            "i=1; a=rsa-sha256; t=1771501623; cv=none;\n\td=zohomail.com; s=zohoarc;\n\tb=Pc/iD7skyiRo03M19Ku5zL/oAHeYr+Xn0FXj4PFiElhL/YpuI3JbqU3rMajSa+ZR+XqQ8BXPFHU8Raq10bP5enTZKXmvVHVTS1SjGOlgDXT/S4r+xWhW2ulEzYEkBV0IYvkLIqYxvw+QxxsLRvoSkajmIwNMgbTRiTE/56EW2Pw="
        ],
        "ARC-Message-Signature": [
            "i=3; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1771501671; c=relaxed/relaxed;\n\tbh=BrTDphID1FazTUyK9mU2nbhmtXa8HS/YY+v6FPHpCxk=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=He6wDLUZiHWxuQqqX/1NzRy1GO/58DJQb0RDtxWx8eyC/n/1rKWGmEN8uQYDkESZFa9n4Zemg8l7EkpadDufmBTRQjUU+eFDoHa2NAgqEGESHx8tJRNJxGOnuKr84VrOo0nFH92fuUF3fYIPTD7hrIht++ickmcoMl2XHHAF5P30NVB3tQsk4QloKRQRIm4T2gCsGlCEpu8peVDAiBbPAH6xmWVDfYmhv8ph2dlAaLZkdUnKr6orgnefTNEFFYj7gLD0EnxLLkAkUtj6K1EdhNnFST41n4XuR+6glah0FyL06DbgFBIMeyYyeGYJc4v2yHjZbfadY2GGJzBnElT3AQ==",
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771501663; c=relaxed/simple;\n\tbh=LY7suJAysGTntkxgUtbRaJMuffDJfTOv0iUwfPbOn+M=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=QvKYjIQKJeWnK113YTSY7/VwHglvqkRb5M1z8d/fIyyTeXSrNW2+YslNbAhcKbu4HXYxSyMBW+/rwjIAzT2JBXctqMRmex/1xCSVrFCrKQW0htX4sf8MzgzWghJfo+trQ/rHoUyXgYKsLZCYd7R93WCL7391BlduwOkDqSaSdOg=",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;\n s=zohoarc;\n\tt=1771501623;\n h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To;\n\tbh=BrTDphID1FazTUyK9mU2nbhmtXa8HS/YY+v6FPHpCxk=;\n\tb=cCYNQcf4Vfxz0k2YPvkR583NjLXo0muoW7HLsaj18C5tiRcWkQJmtDvg7XA5S5KVVLfG+tHE/2DVoqVuIG3sIEL56aVny2ze7d0NK4ci2uFFh+fZAUDcYfO/joCWE970ahQ1X4Y++7b57/PbRwWTuMdR/x090Zs8Bc5SFsDMpKQ="
        ],
        "ARC-Authentication-Results": [
            "i=3; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=linux.beauty;\n dkim=pass (1024-bit key;\n unprotected) header.d=linux.beauty header.i=me@linux.beauty\n header.a=rsa-sha256 header.s=zmail header.b=ggG1Tq4C; dkim-atps=neutral;\n spf=pass (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-ext4+bounces-13743-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org",
            "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.beauty;\n spf=pass smtp.mailfrom=linux.beauty;\n dkim=pass (1024-bit key) header.d=linux.beauty header.i=me@linux.beauty\n header.b=ggG1Tq4C; arc=pass smtp.client-ip=136.143.188.15",
            "i=1; mx.zohomail.com;\n\tdkim=pass  header.i=linux.beauty;\n\tspf=pass  smtp.mailfrom=me@linux.beauty;\n\tdmarc=pass header.from=<me@linux.beauty>"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1771501623;\n\ts=zmail; d=linux.beauty; i=me@linux.beauty;\n\th=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Transfer-Encoding:Message-Id:Reply-To;\n\tbh=BrTDphID1FazTUyK9mU2nbhmtXa8HS/YY+v6FPHpCxk=;\n\tb=ggG1Tq4Cx7v7ouHiuzta89uOdcLqzyQYNZ+ICm8tfQJbkb12/9MYpz6mMVraQr1Q\n\t+ZvuXGiHFck8PbOKjYH+iK+1NVN0t1gyWa4sZrU4o75vBnJjtyZwTbZMdm5i3rHyipz\n\tCpVL8uAGSZL8iyI+7I6qsTsbuLR0eXUgg7vNyDec=",
        "From": "Li Chen <me@linux.beauty>",
        "To": "Theodore Ts'o <tytso@mit.edu>,\n\tJan Kara <jack@suse.cz>,\n\tMark Fasheh <mark@fasheh.com>,\n\tlinux-ext4@vger.kernel.org,\n\tocfs2-devel@lists.linux.dev,\n\tMatthew Wilcox <willy@infradead.org>",
        "Cc": "Andreas Dilger <adilger.kernel@dilger.ca>,\n\tJoel Becker <jlbec@evilplan.org>,\n\tJoseph Qi <joseph.qi@linux.alibaba.com>,\n\tlinux-kernel@vger.kernel.org",
        "Subject": "[PATCH v2 0/3] jbd2/ext4/ocfs2: lockless jinode dirty range",
        "Date": "Thu, 19 Feb 2026 19:46:41 +0800",
        "Message-ID": "<20260219114645.778338-1-me@linux.beauty>",
        "X-Mailer": "git-send-email 2.52.0",
        "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-ZohoMailClient": "External",
        "X-Spam-Status": "No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tHEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"
    },
    "content": "This series makes the jbd2_inode dirty range tracking safe for lockless\nreads in jbd2 and filesystem callbacks used by ext4 and ocfs2.\n\nSome paths access jinode fields without holding journal->j_list_lock\n(e.g. fast commit helpers and ordered truncate helpers). v1 used READ_ONCE()\non i_dirty_start/end, but Matthew pointed out that loff_t can be torn on\n32-bit platforms, and Jan suggested storing the dirty range in PAGE_SIZE\nunits as pgoff_t.\n\nWith this series, jbd2 stores i_dirty_start/end as pgoff_t and uses\nREAD_ONCE()/WRITE_ONCE() for lockless access. ext4 and ocfs2 convert the\npage-based dirty range back to byte offsets for writeback.\n\nThis is based on Jan's suggestion in the review of the ext4 jinode\npublication race fix. [1]\n\nChanges since v1:\n- Store i_dirty_start/end in PAGE_SIZE units (pgoff_t) to avoid torn loads on\n  32-bit (pointed out by Matthew, suggested by Jan).\n- Use WRITE_ONCE() for i_dirty_* / i_flags updates in jbd2 (per Jan).\n- Drop pointless READ_ONCE() on i_vfs_inode in jbd2_wait_inode_data (per Jan).\n- Convert ext4/ocfs2 callbacks to translate page range to byte offsets.\n\n[1]: https://lore.kernel.org/all/4jxwogttddiaoqbstlgou5ox6zs27ngjjz5ukrxafm2z5ijxod@so4eqnykiegj/\n\nv1: https://lore.kernel.org/all/20260130031232.60780-1-me@linux.beauty/\n\nLi Chen (3):\n  jbd2: store jinode dirty range in PAGE_SIZE units\n  ext4: use READ_ONCE for lockless jinode reads\n  ocfs2: use READ_ONCE for lockless jinode reads\n\n fs/ext4/inode.c       | 12 ++++++--\n fs/ext4/super.c       | 19 +++++++++----\n fs/jbd2/commit.c      | 65 ++++++++++++++++++++++++++++++++++---------\n fs/jbd2/journal.c     |  3 +-\n fs/jbd2/transaction.c | 20 ++++++++-----\n fs/ocfs2/journal.c    | 13 +++++++--\n include/linux/jbd2.h  | 17 +++++++----\n 7 files changed, 113 insertions(+), 36 deletions(-)"
}