Show a cover letter.

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

{
    "id": 2218698,
    "url": "http://patchwork.ozlabs.org/api/1.0/covers/2218698/?format=api",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/1.0/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": ""
    },
    "msgid": "<20260401171927.396672-1-stefanha@redhat.com>",
    "date": "2026-04-01T17:19:24",
    "name": "[0/3] scsi: PR live migration PREEMPT fixes",
    "submitter": {
        "id": 17227,
        "url": "http://patchwork.ozlabs.org/api/1.0/people/17227/?format=api",
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com"
    },
    "series": [
        {
            "id": 498372,
            "url": "http://patchwork.ozlabs.org/api/1.0/series/498372/?format=api",
            "date": "2026-04-01T17:19:24",
            "name": "scsi: PR live migration PREEMPT fixes",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498372/mbox/"
        }
    ],
    "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=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=cyWw8OhH;\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)"
        ],
        "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 4fmBb30gB4z1yCp\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 04:20:47 +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 1w7zEe-000423-0T; Wed, 01 Apr 2026 13:20:08 -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 <stefanha@redhat.com>)\n id 1w7zEA-0003Et-8e\n for qemu-devel@nongnu.org; Wed, 01 Apr 2026 13:19:38 -0400",
            "from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <stefanha@redhat.com>)\n id 1w7zE8-0001IM-SJ\n for qemu-devel@nongnu.org; Wed, 01 Apr 2026 13:19:38 -0400",
            "from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-201-FnQHFicmO6SezMUKGnFG6g-1; Wed,\n 01 Apr 2026 13:19:33 -0400",
            "from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id E9E22195608C; Wed,  1 Apr 2026 17:19:31 +0000 (UTC)",
            "from localhost (unknown [10.44.32.12])\n by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id 6543C180058B; Wed,  1 Apr 2026 17:19:29 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1775063975;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding;\n bh=wa3tgXDwjHGBlgvCWZRQZZMqIWeIdAuwu3ajIUqnh6w=;\n b=cyWw8OhHHlQacYeyZm9qoEBrbS1FKc7AhBpc2+HDiHNwSKmf4oWhWkV3JNHiDGtrMJpnYs\n WW4QTu0Q/IFlJnEaVPxJ2Jh68r2/gHQpaI4vGW2hjtbXqbDDBaXpYMQTAVt3BDnpX77iia\n RNjV9HK6AUfgPluTgpBo7UpBraHQRD4=",
        "X-MC-Unique": "FnQHFicmO6SezMUKGnFG6g-1",
        "X-Mimecast-MFC-AGG-ID": "FnQHFicmO6SezMUKGnFG6g_1775063972",
        "From": "Stefan Hajnoczi <stefanha@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "Paolo Bonzini <pbonzini@redhat.com>, <qemu-stable@nongnu.org>,\n qemu-block@nongnu.org, Fam Zheng <fam@euphon.net>,\n Stefan Hajnoczi <stefanha@redhat.com>",
        "Subject": "[PATCH 0/3] scsi: PR live migration PREEMPT fixes",
        "Date": "Wed,  1 Apr 2026 13:19:24 -0400",
        "Message-ID": "<20260401171927.396672-1-stefanha@redhat.com>",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.111",
        "Received-SPF": "pass client-ip=170.10.129.124;\n envelope-from=stefanha@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com",
        "X-Spam_score_int": "27",
        "X-Spam_score": "2.7",
        "X-Spam_bar": "++",
        "X-Spam_report": "(2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01,\n RCVD_IN_SBL_CSS=3.335, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=1, SPF_HELO_PASS=-0.001,\n SPF_PASS=-0.001 autolearn=no 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": "These patches are for QEMU 11.1 and 11.0-stable because they are not release\nblockers.\n\nTesting SCSI Persistent Reservation live migration with the Linux LIO iSCSI\ntarget exposed two issues:\n\n1. The LIO target interprets the request's TYPE field even though the spec says\n   it should be ignored. This led to PREEMPT commands failing on the LIO\n   target. Work around this by sending a \"valid\" TYPE field value. I have also\n   contacted the LIO maintainers about improving spec-compliance but QEMU needs\n   to work with existing targets.\n\n2. The LIO target removes all matching registrations, including the I_T nexus\n   that is sending the PREEMPT command, when PREEMPT is used to remove\n   registrations rather than preempt a reservation. This actually appears to\n   comply with the spec, but the hardware target I previously tested against\n   would not remove the calling I_T nexus' registration and therefore QEMU's\n   behavior was wrong. Implement a fix that works regardless of the target.\n\nStefan Hajnoczi (3):\n  scsi: adjust error_prepend() formatting\n  scsi: always send valid PREEMPT TYPE field\n  scsi: register again after PREEMPT without reservation\n\n include/scsi/constants.h | 10 ++++++++++\n hw/scsi/scsi-generic.c   | 24 ++++++++++++++++++++++--\n 2 files changed, 32 insertions(+), 2 deletions(-)"
}