Show a cover letter.

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

{
    "id": 2216291,
    "url": "http://patchwork.ozlabs.org/api/covers/2216291/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260326091948.194529-1-silvan@quobyte.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": "<20260326091948.194529-1-silvan@quobyte.com>",
    "list_archive_url": null,
    "date": "2026-03-26T09:19:45",
    "name": "[v1,0/3] block: Add 'posix' option for file locking",
    "submitter": {
        "id": 92975,
        "url": "http://patchwork.ozlabs.org/api/people/92975/?format=api",
        "name": "Silvan Kaiser",
        "email": "silvan@quobyte.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260326091948.194529-1-silvan@quobyte.com/mbox/",
    "series": [
        {
            "id": 497558,
            "url": "http://patchwork.ozlabs.org/api/series/497558/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=497558",
            "date": "2026-03-26T09:19:45",
            "name": "block: Add 'posix' option for file locking",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/497558/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2216291/comments/",
    "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=quobyte.com header.i=@quobyte.com header.a=rsa-sha256\n header.s=google header.b=Qv7VPMC0;\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 4fhJDn6jz6z1y1x\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 20:21:28 +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 1w5gtb-0000dx-Is; Thu, 26 Mar 2026 05:20:55 -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 <silvan@quobyte.com>)\n id 1w5gtZ-0000cL-1C\n for qemu-devel@nongnu.org; Thu, 26 Mar 2026 05:20:53 -0400",
            "from mail-wm1-x336.google.com ([2a00:1450:4864:20::336])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <silvan@quobyte.com>)\n id 1w5gtX-0000J9-Ak\n for qemu-devel@nongnu.org; Thu, 26 Mar 2026 05:20:52 -0400",
            "by mail-wm1-x336.google.com with SMTP id\n 5b1f17b1804b1-486b9675d36so6655755e9.0\n for <qemu-devel@nongnu.org>; Thu, 26 Mar 2026 02:20:50 -0700 (PDT)",
            "from kaisers.corp.quobyte.com ([24.134.167.61])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48722c9506dsm16474295e9.7.2026.03.26.02.20.46\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 26 Mar 2026 02:20:47 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=quobyte.com; s=google; t=1774516849; x=1775121649; darn=nongnu.org;\n h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject\n :date:message-id:reply-to;\n bh=DyHR0HRkqXdCXirZ0a5a3vv9reSIjx66xb7d3/MeYYQ=;\n b=Qv7VPMC0C638VNKLIbjRiEOwXpO4Ks0Wg8vXntuqRGM3JmjjDZeqP2U88iTeIfX6ng\n UbU4Z6URx1sqIXZJmkpDSE8bALmcrxDJy+rt9wpUNyxESEiD3qsQkkQuCRUtdQwMjuY+\n q6vYlyK2dLTJgXkZOUWDXNfUj6H1RbT7sLoDA=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774516849; x=1775121649;\n h=mime-version:message-id:date:subject:cc:to:from:x-gm-gg\n :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=DyHR0HRkqXdCXirZ0a5a3vv9reSIjx66xb7d3/MeYYQ=;\n b=eXtL6TMiJpl6CAc6AGrH4PGUt4kF17CzYHKbxml5vsOPh10SLadlKh/BDT4w/tOTIZ\n cuofttEV6m5xbdgOjofb28jN6Yrfxemh9wyua0DyM/3eRdDC27ssSQ+NME+vFhjz7N3E\n Wt6MwkF7Uq0mY0vG6dHXKJ4cVNIjutVn2ky19HGq8WkU82xrDQL6vaehIokCk1Fp22JR\n WMNlSrlDIkGfCqZQvtTt4VHflbiAYOQTLnMrCLw6ks9HGQCVn7ON8S1dwBmpcy9KuSNa\n C8L4Z/cHy7k9toBTj+s6LD6dpwg31vSGfsEKg22lmbE59UhZy7nwfSh2/5CB94+QPCmq\n rO/A==",
        "X-Gm-Message-State": "AOJu0YyujMw0xsWrhVvdNZRUtDdCslW8aAex3EGRQE3x6PXFVZ+98ODH\n PTlnU5TsVUC9aOi4f5HfWibNukuPBYBdULMe0osGBe1LrPvUHFEbWvYMyEbfjyX/ogvzL3M8nV6\n jtsQAw1xUutJ936+vmaJx2pUo0dUUe1442kSg9ld/HNNnrxYqbEMcBBECsN0NyR9OMdec",
        "X-Gm-Gg": "ATEYQzwBKbAeppFzSpkWQ8vd6HXHNu5SVuU+uzMCyQEcez9vLn1mkPHEaqLChhyI4C7\n wq4rYQzAfWoGwCmU5GSVvcu905PeYrCbSovvHgzR7OUsCJnivQTgzYWyBxu+fhpUMHPICaH62zB\n 3xZs4gfW0++6rVEmjPxmYhlWAlrYVtxLHX538QeX/wVWYX2ojbc66RNwuGSCnKVSjS9NU0fHVpT\n 4LNDXRyTPggT4JZ8zciLCNThozN2x0G4UsE1TiqTrngaxBWSg6gt7az3t2h6UgVRAoya/iLVntR\n 10S1ze9rwvl2eBsQPdpH1kPXKeBC4/kalY8Bja/IJPi2W03Kb+Px00b/RmaVxPguSA7OKWd7TjK\n A9oMJCJQh/2XiBOnT+grg5brL+H5VZPbv+nuZ9r8tS1cyuRACHhnvhr/GNqmGSBaekiPeXEZ2Wy\n hjyrPhIt064Y0AujnJsTSkQGLAmxYJQ3XnhPS4nGOBhPuJThzKv9EPj89wkaVTnL10NoC+Q3NAf\n J4kQ2qsZAjocClT7pxPQPCWOlW15XtIusKQDzMnlOtle2Qr1P/+rLBJwZE=",
        "X-Received": "by 2002:a05:600c:45c4:b0:485:3dfc:57a with SMTP id\n 5b1f17b1804b1-487160717d3mr100682155e9.32.1774516848951;\n Thu, 26 Mar 2026 02:20:48 -0700 (PDT)",
        "From": "Silvan Kaiser <silvan@quobyte.com>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "qemu-block@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,\n pierrick.bouvier@linaro.org, eblake@redhat.com, armbru@redhat.com,\n Silvan Kaiser <silvan@quobyte.com>",
        "Subject": "[PATCH v1 0/3] block: Add 'posix' option for file locking",
        "Date": "Thu, 26 Mar 2026 10:19:45 +0100",
        "Message-ID": "<20260326091948.194529-1-silvan@quobyte.com>",
        "X-Mailer": "git-send-email 2.47.3",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"UTF-8\"",
        "Received-SPF": "pass client-ip=2a00:1450:4864:20::336;\n envelope-from=silvan@quobyte.com; helo=mail-wm1-x336.google.com",
        "X-Spam_score_int": "-20",
        "X-Spam_score": "-2.1",
        "X-Spam_bar": "--",
        "X-Spam_report": "(-2.1 / 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_NONE=-0.0001, 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": "QEMU currently supports three values for the 'locking' property of\nfile-based block devices: 'auto' (the default), 'on', and 'off'.\nWhen OFD (Open File Descriptor) locks are available, 'auto' and 'on'\nuse them; when they are not, 'on' falls back to POSIX locks with a\nwarning.\n\nThis series adds a fourth value, 'posix', which explicitly forces the\nuse of traditional POSIX locks (F_SETLK/F_GETLK) regardless of OFD\navailability.  The motivation is that some userspace filesystem\nimplementations (e.g. FUSE) handle POSIX locks correctly but do not\nfully support OFD lock semantics.  Issues with OFD support detection\non underlying file systems and some OFD guarantees not being fully\nsupported can prohibit users from using the default OFD locking.\nPreviously, users in this situation had no way to force POSIX locking\nwithout disabling locking entirely.\n\nThe series is structured as:\n  1/3 - core implementation in block/file-posix.c, util/osdep.c,\n        include/qemu/osdep.h and qapi/block-core.json\n  2/3 - documentation updates in qemu-options.hx and\n        docs/system/qemu-block-drivers.rst.inc\n  3/3 - new iotest 315 verifying the option is accepted without\n        fallback warnings and that POSIX locks are applied\n\nSilvan Kaiser (3):\n  block: Add 'posix' option for file locking\n  docs/system: Document locking=posix option for file block driver\n  tests/qemu-iotests: Add test 315 for locking=posix\n\n block/file-posix.c                     | 18 ++++--\n docs/system/qemu-block-drivers.rst.inc |  3 +\n include/qemu/osdep.h                   |  1 +\n qapi/block-core.json                   | 18 +++++-\n qemu-options.hx                        | 10 +--\n tests/qemu-iotests/315                 | 88 ++++++++++++++++++++++++++\n tests/qemu-iotests/315.out             |  7 ++\n util/osdep.c                           |  9 ++-\n 8 files changed, 139 insertions(+), 15 deletions(-)\n create mode 100755 tests/qemu-iotests/315\n create mode 100644 tests/qemu-iotests/315.out"
}