get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 806846,
    "url": "http://patchwork.ozlabs.org/api/patches/806846/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1503965694-10794-47-git-send-email-mdroth@linux.vnet.ibm.com/",
    "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": "<1503965694-10794-47-git-send-email-mdroth@linux.vnet.ibm.com>",
    "list_archive_url": null,
    "date": "2017-08-29T00:14:21",
    "name": "[46/79] mirror: Drop permissions on s->target on completion",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "1a8db23bf35df5b636b1236d22e905b3f4c52a5e",
    "submitter": {
        "id": 5549,
        "url": "http://patchwork.ozlabs.org/api/people/5549/?format=api",
        "name": "Michael Roth",
        "email": "mdroth@linux.vnet.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1503965694-10794-47-git-send-email-mdroth@linux.vnet.ibm.com/mbox/",
    "series": [
        {
            "id": 281,
            "url": "http://patchwork.ozlabs.org/api/series/281/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=281",
            "date": "2017-08-29T00:13:45",
            "name": "Patch Round-up for stable 2.9.1, freeze on 2017-09-04",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/281/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/806846/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/806846/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@bilbo.ozlabs.org",
        "Authentication-Results": "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xh8vL51mpz9s4s\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 29 Aug 2017 10:41:02 +1000 (AEST)",
            "from localhost ([::1]:42020 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dmUaS-0006SU-HM\n\tfor incoming@patchwork.ozlabs.org; Mon, 28 Aug 2017 20:41:00 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:48245)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <mdroth@linux.vnet.ibm.com>) id 1dmUCZ-0001Pw-Hy\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:20 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <mdroth@linux.vnet.ibm.com>) id 1dmUCW-0005eD-SP\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:19 -0400",
            "from mx0a-001b2d01.pphosted.com ([148.163.156.1]:52122)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <mdroth@linux.vnet.ibm.com>)\n\tid 1dmUCW-0005c8-H8\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:16 -0400",
            "from pps.filterd (m0098393.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv7T0FNJl080780\n\tfor <qemu-devel@nongnu.org>; Mon, 28 Aug 2017 20:16:15 -0400",
            "from e38.co.us.ibm.com (e38.co.us.ibm.com [32.97.110.159])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2cmnx0yv53-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Mon, 28 Aug 2017 20:16:15 -0400",
            "from localhost\n\tby e38.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <mdroth@linux.vnet.ibm.com>;\n\tMon, 28 Aug 2017 18:16:14 -0600",
            "from b03cxnp08025.gho.boulder.ibm.com (9.17.130.17)\n\tby e38.co.us.ibm.com (192.168.1.138) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tMon, 28 Aug 2017 18:16:11 -0600",
            "from b03ledav002.gho.boulder.ibm.com\n\t(b03ledav002.gho.boulder.ibm.com [9.17.130.233])\n\tby b03cxnp08025.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v7T0GBUt524716; Mon, 28 Aug 2017 17:16:11 -0700",
            "from b03ledav002.gho.boulder.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 6B53113603C;\n\tMon, 28 Aug 2017 18:16:11 -0600 (MDT)",
            "from localhost (unknown [9.80.85.217])\n\tby b03ledav002.gho.boulder.ibm.com (Postfix) with ESMTP id\n\t37B5613603A; Mon, 28 Aug 2017 18:16:11 -0600 (MDT)"
        ],
        "From": "Michael Roth <mdroth@linux.vnet.ibm.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Mon, 28 Aug 2017 19:14:21 -0500",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1503965694-10794-1-git-send-email-mdroth@linux.vnet.ibm.com>",
        "References": "<1503965694-10794-1-git-send-email-mdroth@linux.vnet.ibm.com>",
        "X-TM-AS-GCONF": "00",
        "x-cbid": "17082900-0028-0000-0000-00000846DB3B",
        "X-IBM-SpamModules-Scores": "",
        "X-IBM-SpamModules-Versions": "BY=3.00007630; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000226; SDB=6.00909028; UDB=6.00455849;\n\tIPR=6.00689279; \n\tBA=6.00005557; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00016909;\n\tXFM=3.00000015; UTC=2017-08-29 00:16:13",
        "X-IBM-AV-DETECTION": "SAVI=unused REMOTE=unused XFE=unused",
        "x-cbparentid": "17082900-0029-0000-0000-000037553153",
        "Message-Id": "<1503965694-10794-47-git-send-email-mdroth@linux.vnet.ibm.com>",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-08-28_13:, , signatures=0",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=1\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1708290001",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]",
        "X-Received-From": "148.163.156.1",
        "Subject": "[Qemu-devel] [PATCH 46/79] mirror: Drop permissions on s->target on\n\tcompletion",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://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\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "Kevin Wolf <kwolf@redhat.com>, qemu-stable@nongnu.org",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "From: Kevin Wolf <kwolf@redhat.com>\n\nThis fixes an assertion failure that was triggered by qemu-iotests 129\non some CI host, while the same test case didn't seem to fail on other\nhosts.\n\nEssentially the problem is that the blk_unref(s->target) in\nmirror_exit() doesn't necessarily mean that the BlockBackend goes away\nimmediately. It is possible that the job completion was triggered nested\nin mirror_drain(), which looks like this:\n\n    BlockBackend *target = s->target;\n    blk_ref(target);\n    blk_drain(target);\n    blk_unref(target);\n\nIn this case, the write permissions for s->target are retained until\nafter blk_drain(), which makes removing mirror_top_bs fail for the\nactive commit case (can't have a writable backing file in the chain\nwithout the filter driver).\n\nExplicitly dropping the permissions first means that the additional\nreference doesn't hurt and the job can complete successfully even if\ncalled from the nested blk_drain().\n\nCc: qemu-stable@nongnu.org\nSigned-off-by: Kevin Wolf <kwolf@redhat.com>\nAcked-by: Paolo Bonzini <pbonzini@redhat.com>\nReviewed-by: Max Reitz <mreitz@redhat.com>\n(cherry picked from commit 63c8ef289087a225d445319d047501d4fe593687)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>\n---\n block/mirror.c | 7 ++++++-\n 1 file changed, 6 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/block/mirror.c b/block/mirror.c\nindex 2173a2f..4e8f124 100644\n--- a/block/mirror.c\n+++ b/block/mirror.c\n@@ -514,7 +514,12 @@ static void mirror_exit(BlockJob *job, void *opaque)\n \n     /* Remove target parent that still uses BLK_PERM_WRITE/RESIZE before\n      * inserting target_bs at s->to_replace, where we might not be able to get\n-     * these permissions. */\n+     * these permissions.\n+     *\n+     * Note that blk_unref() alone doesn't necessarily drop permissions because\n+     * we might be running nested inside mirror_drain(), which takes an extra\n+     * reference, so use an explicit blk_set_perm() first. */\n+    blk_set_perm(s->target, 0, BLK_PERM_ALL, &error_abort);\n     blk_unref(s->target);\n     s->target = NULL;\n \n",
    "prefixes": [
        "46/79"
    ]
}