get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2215605,
    "url": "http://patchwork.ozlabs.org/api/patches/2215605/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260324194333.30004-16-farosas@suse.de/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260324194333.30004-16-farosas@suse.de>",
    "list_archive_url": null,
    "date": "2026-03-24T19:43:30",
    "name": "[RFC,v1,15/17] vmstate: Invert exists check",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "8db15ddbfc35d498763f1b57e8a3ef6df323e34c",
    "submitter": {
        "id": 85343,
        "url": "http://patchwork.ozlabs.org/api/people/85343/?format=api",
        "name": "Fabiano Rosas",
        "email": "farosas@suse.de"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260324194333.30004-16-farosas@suse.de/mbox/",
    "series": [
        {
            "id": 497339,
            "url": "http://patchwork.ozlabs.org/api/series/497339/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=497339",
            "date": "2026-03-24T19:43:16",
            "name": "migration: vmstate_save|load changes for peterx",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/497339/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2215605/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2215605/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=LJlHHZ/F;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=SxOx9ekq;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=LJlHHZ/F;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=SxOx9ekq;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)",
            "smtp-out2.suse.de;\n dkim=pass header.d=suse.de header.s=susede2_rsa header.b=\"LJlHHZ/F\";\n dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=SxOx9ekq"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fgLBG22Dcz1y1G\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 06:45:58 +1100 (AEDT)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1w57fv-0003SY-1C; Tue, 24 Mar 2026 15:44:27 -0400",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <farosas@suse.de>) id 1w57fu-0003Rp-34\n for qemu-devel@nongnu.org; Tue, 24 Mar 2026 15:44:26 -0400",
            "from smtp-out2.suse.de ([195.135.223.131])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <farosas@suse.de>) id 1w57fs-0008Ha-ML\n for qemu-devel@nongnu.org; Tue, 24 Mar 2026 15:44:25 -0400",
            "from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org\n [IPv6:2a07:de40:b281:104:10:150:64:97])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-out2.suse.de (Postfix) with ESMTPS id 1CF7E5BE1D;\n Tue, 24 Mar 2026 19:44:00 +0000 (UTC)",
            "from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id EA48A43FE4;\n Tue, 24 Mar 2026 19:43:58 +0000 (UTC)",
            "from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])\n by imap1.dmz-prg2.suse.org with ESMTPSA id YFDWLX7pwmlkMQAAD6G6ig\n (envelope-from <farosas@suse.de>); Tue, 24 Mar 2026 19:43:58 +0000"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1774381440;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=uKkqaMifPLhVuCwU2Uzx6zWtC1DhStHTsblOt5+wAvA=;\n b=LJlHHZ/FT4XwhQxWsba7xLivXw8tRl7OERSKWAqdN9+uyUtENrYdUDcsMio4rcyKscuuf3\n wdf7FPAUnoWXgfhdaa/0LlXkLVFmfO2lKuI7NYFG00tqiEqexmIVCdA+SwjdrwMO1gGeVF\n ZYuo4UEYxyN1s+IFlW+9Jw7eOwxeh8g=",
            "v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1774381440;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=uKkqaMifPLhVuCwU2Uzx6zWtC1DhStHTsblOt5+wAvA=;\n b=SxOx9ekqVA+6fy2vnaLcB5pGmLz8rHvRdGWAzxBza6RTTsBoHM7F0cDDCOkryUR0BUdI91\n YEeW23L6BlEvRgAg==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1774381440;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=uKkqaMifPLhVuCwU2Uzx6zWtC1DhStHTsblOt5+wAvA=;\n b=LJlHHZ/FT4XwhQxWsba7xLivXw8tRl7OERSKWAqdN9+uyUtENrYdUDcsMio4rcyKscuuf3\n wdf7FPAUnoWXgfhdaa/0LlXkLVFmfO2lKuI7NYFG00tqiEqexmIVCdA+SwjdrwMO1gGeVF\n ZYuo4UEYxyN1s+IFlW+9Jw7eOwxeh8g=",
            "v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1774381440;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=uKkqaMifPLhVuCwU2Uzx6zWtC1DhStHTsblOt5+wAvA=;\n b=SxOx9ekqVA+6fy2vnaLcB5pGmLz8rHvRdGWAzxBza6RTTsBoHM7F0cDDCOkryUR0BUdI91\n YEeW23L6BlEvRgAg=="
        ],
        "From": "Fabiano Rosas <farosas@suse.de>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "Peter Xu <peterx@redhat.com>,\n Alexander Mikhalitsyn <alexander@mihalicyn.com>,\n Juraj Marcin <jmarcin@redhat.com>",
        "Subject": "[RFC PATCH v1 15/17] vmstate: Invert exists check",
        "Date": "Tue, 24 Mar 2026 16:43:30 -0300",
        "Message-ID": "<20260324194333.30004-16-farosas@suse.de>",
        "X-Mailer": "git-send-email 2.51.0",
        "In-Reply-To": "<20260324194333.30004-1-farosas@suse.de>",
        "References": "<20260324194333.30004-1-farosas@suse.de>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Spamd-Result": "default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%];\n MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000];\n R_MISSING_CHARSET(0.50)[];\n R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain];\n MX_GOOD(-0.01)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+];\n TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[];\n FUZZY_RATELIMITED(0.00)[rspamd.com];\n DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received];\n DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[];\n RCPT_COUNT_THREE(0.00)[4]; RCVD_TLS_ALL(0.00)[];\n DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,suse.de:email];\n RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[];\n DKIM_TRACE(0.00)[suse.de:+]",
        "X-Rspamd-Action": "no action",
        "X-Spam-Score": "-3.01",
        "X-Rspamd-Server": "rspamd1.dmz-prg2.suse.org",
        "X-Rspamd-Queue-Id": "1CF7E5BE1D",
        "Received-SPF": "pass client-ip=195.135.223.131; envelope-from=farosas@suse.de;\n helo=smtp-out2.suse.de",
        "X-Spam_score_int": "-43",
        "X-Spam_score": "-4.4",
        "X-Spam_bar": "----",
        "X-Spam_report": "(-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "Aiming to reduce one level of indentation on these routines, invert\nthe exists check so it can \"return early\" (continue actually). There\nis too much code and doing it all at once would be hard to review.\n\nSigned-off-by: Fabiano Rosas <farosas@suse.de>\n---\n migration/vmstate.c | 11 +++++++++--\n 1 file changed, 9 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/migration/vmstate.c b/migration/vmstate.c\nindex 5bc860129e..1862198c70 100644\n--- a/migration/vmstate.c\n+++ b/migration/vmstate.c\n@@ -301,7 +301,10 @@ bool vmstate_load_vmsd(QEMUFile *f, const VMStateDescription *vmsd,\n \n         trace_vmstate_load_state_field(vmsd->name, field->name, exists);\n \n-        if (exists) {\n+        if (!exists) {\n+            field++;\n+            continue;\n+        } else {\n             void *head;\n             int i, n_elems = vmstate_n_elems(opaque, field);\n             int size = vmstate_size(opaque, field);\n@@ -653,7 +656,11 @@ static bool vmstate_save_vmsd_v(QEMUFile *f, const VMStateDescription *vmsd,\n         if (!ok) {\n             g_assert_not_reached();\n         }\n-        if (exists) {\n+\n+        if (!exists) {\n+            field++;\n+            continue;\n+        } else {\n             void *head;\n             int i, n_elems = vmstate_n_elems(opaque, field);\n             int size = vmstate_size(opaque, field);\n",
    "prefixes": [
        "RFC",
        "v1",
        "15/17"
    ]
}