get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2222802/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2222802,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2222802/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20260413180824.126739-1-nikic.milos@gmail.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": "<20260413180824.126739-1-nikic.milos@gmail.com>",
    "list_archive_url": null,
    "date": "2026-04-13T18:08:24",
    "name": "jbd2: validate transaction state before dropping from journal",
    "commit_ref": null,
    "pull_url": null,
    "state": "rejected",
    "archived": false,
    "hash": "a26a39392f47987d29e6593c8e1dcfcb715092db",
    "submitter": {
        "id": 92599,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/92599/?format=api",
        "name": "Milos Nikic",
        "email": "nikic.milos@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20260413180824.126739-1-nikic.milos@gmail.com/mbox/",
    "series": [
        {
            "id": 499736,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/499736/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/list/?series=499736",
            "date": "2026-04-13T18:08:24",
            "name": "jbd2: validate transaction state before dropping from journal",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/499736/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2222802/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2222802/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <SRS0=9Fk3=CM=vger.kernel.org=linux-ext4+bounces-15821-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 (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=mQXPoQis;\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=9fk3=cm=vger.kernel.org=linux-ext4+bounces-15821-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=pass (p=none dis=none) header.from=gmail.com",
            "gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=mQXPoQis;\n\tdkim-atps=neutral",
            "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-15821-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"mQXPoQis\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=74.125.82.48",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.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 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 4fvb9V70xkz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 04:12:45 +1000 (AEST)",
            "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fvb9S5M4rz4wDm\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 04:12:44 +1000 (AEST)",
            "by gandalf.ozlabs.org (Postfix)\n\tid 4fvb9S5DGYz4wHp; Tue, 14 Apr 2026 04:12:44 +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 4fvb9P1Kqrz4wDm\n\tfor <patchwork-incoming@ozlabs.org>; Tue, 14 Apr 2026 04:12:41 +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 A7EAF3014C01\n\tfor <patchwork-incoming@ozlabs.org>; Mon, 13 Apr 2026 18:08:35 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 58D213B7748;\n\tMon, 13 Apr 2026 18:08:34 +0000 (UTC)",
            "from mail-dl1-f48.google.com (mail-dl1-f48.google.com\n [74.125.82.48])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id F1489340273\n\tfor <linux-ext4@vger.kernel.org>; Mon, 13 Apr 2026 18:08:32 +0000 (UTC)",
            "by mail-dl1-f48.google.com with SMTP id\n a92af1059eb24-1273349c56bso6251682c88.0\n        for <linux-ext4@vger.kernel.org>;\n Mon, 13 Apr 2026 11:08:32 -0700 (PDT)",
            "from arch.lan (c-98-51-119-100.hsd1.ca.comcast.net. [98.51.119.100])\n        by smtp.gmail.com with ESMTPSA id\n a92af1059eb24-12c346fb141sm14860956c88.12.2026.04.13.11.08.30\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Mon, 13 Apr 2026 11:08:31 -0700 (PDT)"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776103964; cv=pass;\n\tb=m+MD8lLuC1VnUdhzMmNU2b+gATCN+Tq7JrHFQB9aLcIMx//sZf2rHAFk1VBaQUhadjjLcGB9htWdGVintGezNydTOwhuyyi7w/sbmORUoJ3RYBdmrhsH3GjlLelVpeFMrrQXbzShJZNJZNAc6hWkKh8kZHyEuN4HV02boMVpoGUVPRS/GVpNymKzW50B1Po39juhGEOYLmC5+6RefVYgvlTpM6m4IRmJ5BMV1yW0AhtO+4YCsB6PPCpIhpCdxzUXiO3nNkZT8BNexcC0NSrPSdPVjozjCALnwQJcQQGP9h4wdWIxabfwoxbgjkmYUDCsKP8yfQ/fBwr+hJnhofwbrQ==",
            "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776103714; cv=none;\n b=DkgRaryZB+27mXGtBOkO0y/pK1cK1fNr4un1en4VB6yw5FbcJBIPeSFwQLQSr/E/o4ySRrw9q3ja4xXrCTmrrHaQGh7aNQXDzyhyZpdyuOIsQS7TQxn4reOQN5Pkm2TJ7T+keSp5jBc2haDGJeFGLP9EHWUoCiyU2VMAY1SfdLg="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776103964; c=relaxed/relaxed;\n\tbh=b+uS5QHNkQJbtQuGTQaxTCJ42LhmMw1oPV48ehypgMg=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=jpSwDx7Vty0W9IHBYmjciuPkWxPq300oMUWoNDDsxdJfbGxSxkZ5nFmg6YzV5mzDsr5cNCcprHrnNQceKDhj9nxwh3SPG1/gLYwfp/wN94M40+2+ojaimn4Vl5sGjzY5wpCcqnp1yoM9wFhLQcj4dCcdyynD2PYTuuS8QgWg2ESQIZ3dkUV7+H0R07kOOvRTfSzfC5AfFfaGjGRCPYX7qBODBhPcFEix+4NL2cwKWwP+Um90iAfv7QzcoKNNvrMkT5BLyA3PfS6t0jJXekLH1jqZw6Mly1/IQo1RyoibEfVQjiRYw8Rasll52dlAyr8B9PeZDKx3lm5FUMvNqbKSgg==",
            "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776103714; c=relaxed/simple;\n\tbh=PDvNSG3AeyzwcNNjTZ3UBK6bWsDy9nTGCF8ZugYhKTQ=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=eWO7URtKJc89tz3JH5tRrUTsRxjh6IcgHhaAiAr9aM2Br7LL7cd6kfZDrWcVJeguuBuuDatwsB/+y9Xoqnm+nykbb0c8p0fQqV5VNAAHv8J26HUhPFwJ+1uOQUGzx9Td1fXWJPeQcPWPp701IWaG74ML9vRYmTAIol3rlc5PMRw="
        ],
        "ARC-Authentication-Results": [
            "i=2; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com; dkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=mQXPoQis; dkim-atps=neutral;\n spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15821-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org",
            "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=mQXPoQis; arc=none smtp.client-ip=74.125.82.48"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1776103712; x=1776708512;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:from:to:cc:subject:date:message-id:reply-to;\n        bh=b+uS5QHNkQJbtQuGTQaxTCJ42LhmMw1oPV48ehypgMg=;\n        b=mQXPoQisPsisIeY5UxFTxN2Z4LW8JfGkGcTCdbXvhI7rutyBv9o/l8WerebIkM9krY\n         PhBp2aC2gC0lTuhkXRw5zIV2S+2q+WEqihUkxZKpAuYAgavK9ehdfZvGJn6R8S9xyiwu\n         l85313IhjO7RwWWI74ByvbagBSnto7M11zxVwF6d8fKNpo0NK0MYiwpX2A+XbrqAmJeT\n         sfwdH9LdXlBSZvB5K11NQygnm1IOc6s0DaeCk//N+EafO2hTx9y//IDfjrjiR32B92Qt\n         JHX22aje3e9P9Qb9y1/IpVgd5zpkS1fPYMkZt98XjRrkO345RMskHiJrwm07LcVe3gfj\n         RPjw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1776103712; x=1776708512;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=b+uS5QHNkQJbtQuGTQaxTCJ42LhmMw1oPV48ehypgMg=;\n        b=ZRMqOA+kq9ssFra4eiJTwnWrznU/7WRNyezr0Em+eGpMTM2kvk1oeL/Nb6qIyOHdJS\n         Eljt+l/uA3nyrp7mEWD15veFV2oMcII6oGrWcU8zWu2G01Ok9+C+TUFOUdQY6MiaULVm\n         qZbQUuGEzejB7NYCxMRjZ2wri6+mkmyNHd1zM7eRQCERSHt7SkKGfj5tvloHIlnCP8th\n         lpJDs1+O5u5OXftT+m3e4KYbsJd4SlW5oSC4VRyKFKyVcGCSWcTwxKDZHSA9FG8YuTAW\n         6iZV+NDJKZD8rXoBSwJEeBZ5ZqxvKy/vVydLOl7SpkEWaoHGfZ8pFPKbsowE93KogXm2\n         /UCQ==",
        "X-Forwarded-Encrypted": "i=1;\n AFNElJ+V1OtO6KgNNY7I0EIb0froSp6knK9OVfm3nUd8evTN+EtMUqMLH+LUjuVZ85WWmi7RuV8A8zPdSLjy@vger.kernel.org",
        "X-Gm-Message-State": "AOJu0Yy0yoKt2TCs5gycOFqXE9W0YnfYUB6peJewYvYTGWxDtFClZkUc\n\tGrCVMLedgpyOGwYmRTUJA0w2o8DMDmOwq4vQwaZu+5X4MjXg5VWZjHxs",
        "X-Gm-Gg": "AeBDievnjDlYUV4eMqEED36V9UlAOdA1MgJ/okSmGC+wUl6bMzRbzhjqmv6qn6HDDxB\n\tegNj5Z16irVlTNUN9kbvYhka/ldZyTK28yI1WwO3WXsfV44mnMMHzlYy6Q6ke0Tq7NH4DrkxSnh\n\tb4ghjJ6qhZ1hDXwgl2D6Ocd4WSrvU5FP47uV1TxYmQ6jCcseHZVajymz9PywsDfFVmET6XA2n2y\n\tnPhbobVyobZv2E3ScCANsyiiuLtbkoDiVRruz49iNQISD2w2WsPWmayVApFZMUpY61m0zjmKEcc\n\t6T3uizGb1LRsseRH0/nmxovclWB0ns2qdh/lgfuxTuq8hbk5WG4jrq5F7b+a8vneoEDhcBKyam7\n\tjNDHZ8LE4GFQcPt7eSd5l/DEPBvwADE8Ce3BVaJR0IhKNiLhuNkgOFie6G6a9uye1DJv1X0eim0\n\t92fX5IFsek9MUgsobGYdURho6hegwa76JPlo07dKMPBxfpL50ahS6mSOvGDn4gOn0fq2r1HkpIP\n\t4ZVEylTLqyIQPscJrIhzmMA3FbSgeUloDo+XTUkOaEKTxM01FiB7DKRZcevBNS7Yh+2uZ65idJn\n\tWQCoY7FKOM1JMFnGudc2Hk5KgQ/T+8K3J6p0w1Q=",
        "X-Received": "by 2002:a05:7022:f92:b0:128:bae0:e043 with SMTP id\n a92af1059eb24-12c34f14057mr8333267c88.31.1776103711937;\n        Mon, 13 Apr 2026 11:08:31 -0700 (PDT)",
        "From": "Milos Nikic <nikic.milos@gmail.com>",
        "To": "jack@suse.cz,\n\ttytso@mit.edu,\n\tlinux-ext4@vger.kernel.org",
        "Cc": "linux-kernel@vger.kernel.org,\n\tMilos Nikic <nikic.milos@gmail.com>",
        "Subject": "[PATCH] jbd2: validate transaction state before dropping from journal",
        "Date": "Mon, 13 Apr 2026 11:08:24 -0700",
        "Message-ID": "<20260413180824.126739-1-nikic.milos@gmail.com>",
        "X-Mailer": "git-send-email 2.53.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-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\tFREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"
    },
    "content": "Currently, __jbd2_journal_drop_transaction() unlinks the transaction\nfrom the journal's checkpoint lists and only then proceeds to validate the\ntransaction's internal state using a series of J_ASSERTs.\n\nThere is no need to 'mutate before validate'. If we are going to halt the\nsystem that makes manipulating corrupted pointers in memory irrelevant.\n\nMove the state validation block above the pointer manipulation. This\nensures the transaction is entirely valid before modifying the journal's\ninternal lists, modernizing the function's logic and paving the way\nfor future graceful degradation of these assertions.\n\nSigned-off-by: Milos Nikic <nikic.milos@gmail.com>\n---\n fs/jbd2/checkpoint.c | 18 +++++++++---------\n 1 file changed, 9 insertions(+), 9 deletions(-)",
    "diff": "diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c\nindex 1508e2f54462..c82b6bedd27b 100644\n--- a/fs/jbd2/checkpoint.c\n+++ b/fs/jbd2/checkpoint.c\n@@ -703,6 +703,15 @@ void __jbd2_journal_drop_transaction(journal_t *journal, transaction_t *transact\n {\n \tassert_spin_locked(&journal->j_list_lock);\n \n+\tJ_ASSERT(transaction->t_state == T_FINISHED);\n+\tJ_ASSERT(transaction->t_buffers == NULL);\n+\tJ_ASSERT(transaction->t_forget == NULL);\n+\tJ_ASSERT(transaction->t_shadow_list == NULL);\n+\tJ_ASSERT(transaction->t_checkpoint_list == NULL);\n+\tJ_ASSERT(atomic_read(&transaction->t_updates) == 0);\n+\tJ_ASSERT(journal->j_committing_transaction != transaction);\n+\tJ_ASSERT(journal->j_running_transaction != transaction);\n+\n \tjournal->j_shrink_transaction = NULL;\n \tif (transaction->t_cpnext) {\n \t\ttransaction->t_cpnext->t_cpprev = transaction->t_cpprev;\n@@ -714,15 +723,6 @@ void __jbd2_journal_drop_transaction(journal_t *journal, transaction_t *transact\n \t\t\tjournal->j_checkpoint_transactions = NULL;\n \t}\n \n-\tJ_ASSERT(transaction->t_state == T_FINISHED);\n-\tJ_ASSERT(transaction->t_buffers == NULL);\n-\tJ_ASSERT(transaction->t_forget == NULL);\n-\tJ_ASSERT(transaction->t_shadow_list == NULL);\n-\tJ_ASSERT(transaction->t_checkpoint_list == NULL);\n-\tJ_ASSERT(atomic_read(&transaction->t_updates) == 0);\n-\tJ_ASSERT(journal->j_committing_transaction != transaction);\n-\tJ_ASSERT(journal->j_running_transaction != transaction);\n-\n \ttrace_jbd2_drop_transaction(journal, transaction);\n \n \tjbd2_debug(1, \"Dropping transaction %d, all done\\n\", transaction->t_tid);\n",
    "prefixes": []
}