get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2230297,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2230297/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/patch/177747214309.4107228.9356150208209169953.stgit@frogsfrogsfrogs/",
    "project": {
        "id": 8,
        "url": "http://patchwork.ozlabs.org/api/1.1/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": "<177747214309.4107228.9356150208209169953.stgit@frogsfrogsfrogs>",
    "date": "2026-04-29T14:52:22",
    "name": "[4/5] libext2fs: allow clients to ask to write full superblocks",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "2f54d86ac97e3154c003a81362147d828a72a756",
    "submitter": {
        "id": 77032,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/77032/?format=api",
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-ext4/patch/177747214309.4107228.9356150208209169953.stgit@frogsfrogsfrogs/mbox/",
    "series": [
        {
            "id": 502086,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/502086/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/list/?series=502086",
            "date": "2026-04-29T14:51:35",
            "name": "[1/5] libext2fs: invalidate cached blocks when freeing them",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/502086/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2230297/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2230297/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "\n <SRS0=gK3H=C4=vger.kernel.org=linux-ext4+bounces-16188-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=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=auxbytEG;\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=gk3h=c4=vger.kernel.org=linux-ext4+bounces-16188-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)",
            "gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=172.232.135.74 arc.chain=subspace.kernel.org",
            "gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org",
            "gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=auxbytEG;\n\tdkim-atps=neutral",
            "gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.232.135.74; helo=sto.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16188-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"auxbytEG\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"
        ],
        "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 4g5Kz93Glsz1xqf\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 00:52:37 +1000 (AEST)",
            "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4g5Kz92ndXz4wSY\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 00:52:37 +1000 (AEST)",
            "by gandalf.ozlabs.org (Postfix)\n\tid 4g5Kz92jxYz4wSd; Thu, 30 Apr 2026 00:52:37 +1000 (AEST)",
            "from sto.lore.kernel.org (sto.lore.kernel.org [172.232.135.74])\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 4g5Kz54Wxnz4wSY\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 30 Apr 2026 00:52:33 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id B4FD530090BB\n\tfor <patchwork-incoming@ozlabs.org>; Wed, 29 Apr 2026 14:52:25 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 5B8AD342CB0;\n\tWed, 29 Apr 2026 14:52:23 +0000 (UTC)",
            "from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\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 15F24336882;\n\tWed, 29 Apr 2026 14:52:22 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPSA id A5E2AC19425;\n\tWed, 29 Apr 2026 14:52:22 +0000 (UTC)"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1777474357; cv=pass;\n\tb=r/M6sMiZRRdgNOSdVEpHgX1OUx1ZAeHQwcMxIv3KkQYiat5dObd0t4ra9Ss/Xe+xq1vl8i6OhaJpkx9T9OU8OoMeA4OrDATSiz95aAgi9TVcjg+dYbO06ehlGk50onx7Kq0v/EjVVPRR4Ja8WU4YoDJulzDUrba6hG7M/pYMzqfteXL5fQsVfOQpmutTbTLgRi0xGzOBvsV0fyuRFKnUq3UhxTGItERFj7v4LYCwjCitrPOvfpq/Onga+vRF7nEUEIOy/6dgALHndBOduER4bN4gAkfmGKaoummePoOapLj1ytIsBx2wyeHlAcwiSYDW5jmpxIQ4mjO2m/6y1bJ70g==",
            "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777474343; cv=none;\n b=OUIrPl/PoMdUHKo1dNCLeH6Bs1IdQWMKCDmmAU4thevb/Hdj/+u7tkF/btqddEheCsJ1utdd18nDOqgYuJQN/4SVjrpNvOJ0luBK/hy7FMxw6QbxyrZjaoOyjoAM8Mg0HSno2K/h0Af7hOEZmPfMYRECnadoi7lLq8cq10+F4Wo="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1777474357; c=relaxed/relaxed;\n\tbh=0cEYNsWrNGvUDvxd81+Zd9AWV9ULjrbWBF3nk5gdpjU=;\n\th=Date:Subject:From:To:Cc:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=C+U9ssJ0B02BscKb+24k5wB6d4kZuYxmYYjPKy/XFSb1TZ9JCQ3b0YgFmVrDMvWZwiL28BAJJVW6OgifkGQ3beBF76pE5Kmak+GjNjESdq0Unhh9uwxMOkmUQtRj7qh2jWX4I4mPdZP3zDTULXLtNRZEfPp7HzG+gADmXXlUW65MQV0jh3f2QFAjY1H+6IxjNFic4hrPFX43SwvBsd/7Ks2NFLZ/bd+5H0teNFEfOkV+axItUv/bYASmb/jBXm4GClrcgRm1VxrVD+0CUcB+X5L8m15rH9qACqg5Qlq7IqnpOnbMnDFGSzb+CVacdHc5KEUb7ElW1KHr9YL18dGWvw==",
            "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777474343; c=relaxed/simple;\n\tbh=Wd58/HTDfiC2J68MaW3ctW3aBj8z9vdubkYZGtDC1WI=;\n\th=Date:Subject:From:To:Cc:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=gP1SFoF49oV4cOCTbiZKA2lQsO3jfTJjeJTOxGB2jY59DokYWU21cW0JRQqljJ0V4QGl3yw+k19FDHpuUMPhQI5HYwmHM+3wVskEysw8E9cNKgG12R+d0cOi26e1L12rQei6o95G30gIxg9iiSdvn0WPH14+Tr/CGmuQ/r811ZQ="
        ],
        "ARC-Authentication-Results": [
            "i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=auxbytEG; dkim-atps=neutral;\n spf=pass (client-ip=172.232.135.74; helo=sto.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16188-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org",
            "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=auxbytEG; arc=none smtp.client-ip=10.30.226.201"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1777474342;\n\tbh=Wd58/HTDfiC2J68MaW3ctW3aBj8z9vdubkYZGtDC1WI=;\n\th=Date:Subject:From:To:Cc:In-Reply-To:References:From;\n\tb=auxbytEGp3aPhQ/b4diJ8i49oYRznFmb3R44OJvY3qTIdDOq0pN3zW10Qctg/9owu\n\t qvKnEBurGnW0CZtzhg+FZ3IKAZhEQsQMXMEgao/O1SXwi57ZZH1MvblQ04yGHwVq87\n\t qfqWCOBijr7dxuAZtwNaKwSPaofN99JOq2YwkB+8ZWB8OO8jvwh13N04M3QBLs0uTc\n\t UCDz3YRkCorD0EocdkCGzn0gXePEbt4xJvdg4SCKxudF6ISVE5JiKMueDy2AIEYe7k\n\t HzWpRLKF+/Bc9bXHGeCis0f11iBtTV5BZQWQrwRa53zq+S+BpfNAzA7S04nlWWVhks\n\t NF630I2REGSyA==",
        "Date": "Wed, 29 Apr 2026 07:52:22 -0700",
        "Subject": "[PATCH 4/5] libext2fs: allow clients to ask to write full superblocks",
        "From": "\"Darrick J. Wong\" <djwong@kernel.org>",
        "To": "tytso@mit.edu",
        "Cc": "bernd@bsbernd.com, miklos@szeredi.hu, linux-ext4@vger.kernel.org,\n neal@gompa.dev, linux-fsdevel@vger.kernel.org, fuse-devel@lists.linux.dev,\n joannelkoong@gmail.com",
        "Message-ID": "<177747214309.4107228.9356150208209169953.stgit@frogsfrogsfrogs>",
        "In-Reply-To": "<177747214224.4107228.16300103064218258692.stgit@frogsfrogsfrogs>",
        "References": "<177747214224.4107228.16300103064218258692.stgit@frogsfrogsfrogs>",
        "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-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "X-Spam-Status": "No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\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": "From: Darrick J. Wong <djwong@kernel.org>\n\nwrite_primary_superblock currently does this weird dance where it will\ntry to write only the dirty bytes of the primary superblock to disk.  In\ntheory, this is done so that tune2fs can incrementally update superblock\nbytes when the filesystem is mounted; ext2 was famous for allowing using\nthis dance to set new fs parameters and have them take effect in real\ntime.\n\nThe ability to do this safely was obliterated back in 2001 when ext3 was\nintroduced with journalling, because tune2fs has no way to know if the\njournal has already logged an updated primary superblock but not yet\nwritten it to disk, which means that they can race to write, and changes\ncan be lost.\n\nThis (non-)safety was further obliterated back in 2012 when I added\nchecksums to all the metadata blocks in ext4 because anyone else with\nthe block device open can see the primary superblock in an intermediate\nstate where the checksum does not match the superblock contents.\n\nAt this point in 2025 it's kind of stupid for fuse2fs to be doing this\nbecause you can't have the kernel and fuse2fs mount the same filesystem\nat the same time.  It also makes fuse2fs op_fsync slow because libext2fs\nperforms a bunch of small writes and introduce extra fsyncs.\n\nSo, add a new flag to ask for full superblock writes, which fuse2fs will\nuse later.\n\nSigned-off-by: \"Darrick J. Wong\" <djwong@kernel.org>\n---\n lib/ext2fs/ext2fs.h  |    1 +\n lib/ext2fs/closefs.c |    7 +++++++\n 2 files changed, 8 insertions(+)",
    "diff": "diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h\nindex 02c3cbcea92482..8fad4c4011dd5a 100644\n--- a/lib/ext2fs/ext2fs.h\n+++ b/lib/ext2fs/ext2fs.h\n@@ -220,6 +220,7 @@ typedef struct ext2_file *ext2_file_t;\n #define EXT2_FLAG_IBITMAP_TAIL_PROBLEM\t0x2000000\n #define EXT2_FLAG_THREADS\t\t0x4000000\n #define EXT2_FLAG_IGNORE_SWAP_DIRENT\t0x8000000\n+#define EXT2_FLAG_WRITE_FULL_SUPER\t0x10000000\n \n /*\n  * Internal flags for use by the ext2fs library only\ndiff --git a/lib/ext2fs/closefs.c b/lib/ext2fs/closefs.c\nindex 8e5bec03a050de..9a67db76e7b326 100644\n--- a/lib/ext2fs/closefs.c\n+++ b/lib/ext2fs/closefs.c\n@@ -196,6 +196,13 @@ static errcode_t write_primary_superblock(ext2_filsys fs,\n \tint\t\tcheck_idx, write_idx, size;\n \terrcode_t\tretval;\n \n+\tif (fs->flags & EXT2_FLAG_WRITE_FULL_SUPER) {\n+\t\tretval = io_channel_write_byte(fs->io, SUPERBLOCK_OFFSET,\n+\t\t\t\t\t       SUPERBLOCK_SIZE, super);\n+\t\tif (!retval)\n+\t\t\treturn 0;\n+\t}\n+\n \tif (!fs->io->manager->write_byte || !fs->orig_super) {\n \tfallback:\n \t\tio_channel_set_blksize(fs->io, SUPERBLOCK_OFFSET);\n",
    "prefixes": [
        "4/5"
    ]
}