get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 812798,
    "url": "http://patchwork.ozlabs.org/api/patches/812798/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170912112855.24269-3-berrange@redhat.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": "<20170912112855.24269-3-berrange@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-12T11:28:50",
    "name": "[v3,2/7] crypto: expose encryption sector size in APIs",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "4b58e7322ea38cefd3dec98561b6f2582cbb9a53",
    "submitter": {
        "id": 2694,
        "url": "http://patchwork.ozlabs.org/api/people/2694/?format=api",
        "name": "Daniel P. Berrangé",
        "email": "berrange@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170912112855.24269-3-berrange@redhat.com/mbox/",
    "series": [
        {
            "id": 2673,
            "url": "http://patchwork.ozlabs.org/api/series/2673/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2673",
            "date": "2017-09-12T11:28:48",
            "name": "Misc improvements to crypto block driver",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/2673/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/812798/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/812798/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>)",
            "ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=berrange@redhat.com"
        ],
        "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 3xs2f10wZ6z9s7B\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 12 Sep 2017 21:30:17 +1000 (AEST)",
            "from localhost ([::1]:35007 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 1drjOR-0003J6-6E\n\tfor incoming@patchwork.ozlabs.org; Tue, 12 Sep 2017 07:30:15 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:53812)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <berrange@redhat.com>) id 1drjNQ-0002zV-MU\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 07:29:13 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <berrange@redhat.com>) id 1drjNP-0004Rb-O9\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 07:29:12 -0400",
            "from mx1.redhat.com ([209.132.183.28]:40242)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <berrange@redhat.com>)\n\tid 1drjNL-0004Nh-Jh; Tue, 12 Sep 2017 07:29:07 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id B8C305D698;\n\tTue, 12 Sep 2017 11:29:06 +0000 (UTC)",
            "from localhost.localdomain.com (unknown [10.42.22.189])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 2F3186C41C;\n\tTue, 12 Sep 2017 11:29:05 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com B8C305D698",
        "From": "\"Daniel P. Berrange\" <berrange@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Tue, 12 Sep 2017 12:28:50 +0100",
        "Message-Id": "<20170912112855.24269-3-berrange@redhat.com>",
        "In-Reply-To": "<20170912112855.24269-1-berrange@redhat.com>",
        "References": "<20170912112855.24269-1-berrange@redhat.com>",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.11",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.39]);\n\tTue, 12 Sep 2017 11:29:06 +0000 (UTC)",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "209.132.183.28",
        "Subject": "[Qemu-devel] [PATCH v3 2/7] crypto: expose encryption sector size\n\tin APIs",
        "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-block@nongnu.org,\n\tStefan Hajnoczi <stefanha@gmail.com>, Max Reitz <mreitz@redhat.com>",
        "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": "While current encryption schemes all have a fixed sector size of\n512 bytes, this is not guaranteed to be the case in future. Expose\nthe sector size in the APIs so the block layer can remove assumptions\nabout fixed 512 byte sectors.\n\nSigned-off-by: Daniel P. Berrange <berrange@redhat.com>\n---\n crypto/block-luks.c    |  6 ++++--\n crypto/block-qcow.c    |  1 +\n crypto/block.c         |  6 ++++++\n crypto/blockpriv.h     |  1 +\n include/crypto/block.h | 15 +++++++++++++++\n 5 files changed, 27 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/crypto/block-luks.c b/crypto/block-luks.c\nindex 36bc856084..a9062bb0f2 100644\n--- a/crypto/block-luks.c\n+++ b/crypto/block-luks.c\n@@ -846,8 +846,9 @@ qcrypto_block_luks_open(QCryptoBlock *block,\n         }\n     }\n \n+    block->sector_size = QCRYPTO_BLOCK_LUKS_SECTOR_SIZE;\n     block->payload_offset = luks->header.payload_offset *\n-        QCRYPTO_BLOCK_LUKS_SECTOR_SIZE;\n+        block->sector_size;\n \n     luks->cipher_alg = cipheralg;\n     luks->cipher_mode = ciphermode;\n@@ -1240,8 +1241,9 @@ qcrypto_block_luks_create(QCryptoBlock *block,\n                    QCRYPTO_BLOCK_LUKS_SECTOR_SIZE)) *\n          QCRYPTO_BLOCK_LUKS_NUM_KEY_SLOTS);\n \n+    block->sector_size = QCRYPTO_BLOCK_LUKS_SECTOR_SIZE;\n     block->payload_offset = luks->header.payload_offset *\n-        QCRYPTO_BLOCK_LUKS_SECTOR_SIZE;\n+        block->sector_size;\n \n     /* Reserve header space to match payload offset */\n     initfunc(block, block->payload_offset, opaque, &local_err);\ndiff --git a/crypto/block-qcow.c b/crypto/block-qcow.c\nindex a456fe338b..4dd594a9ba 100644\n--- a/crypto/block-qcow.c\n+++ b/crypto/block-qcow.c\n@@ -80,6 +80,7 @@ qcrypto_block_qcow_init(QCryptoBlock *block,\n         goto fail;\n     }\n \n+    block->sector_size = QCRYPTO_BLOCK_QCOW_SECTOR_SIZE;\n     block->payload_offset = 0;\n \n     return 0;\ndiff --git a/crypto/block.c b/crypto/block.c\nindex c382393d9a..a7a9ad240e 100644\n--- a/crypto/block.c\n+++ b/crypto/block.c\n@@ -170,6 +170,12 @@ uint64_t qcrypto_block_get_payload_offset(QCryptoBlock *block)\n }\n \n \n+uint64_t qcrypto_block_get_sector_size(QCryptoBlock *block)\n+{\n+    return block->sector_size;\n+}\n+\n+\n void qcrypto_block_free(QCryptoBlock *block)\n {\n     if (!block) {\ndiff --git a/crypto/blockpriv.h b/crypto/blockpriv.h\nindex 0edb810e22..d227522d88 100644\n--- a/crypto/blockpriv.h\n+++ b/crypto/blockpriv.h\n@@ -36,6 +36,7 @@ struct QCryptoBlock {\n     QCryptoHashAlgorithm kdfhash;\n     size_t niv;\n     uint64_t payload_offset; /* In bytes */\n+    uint64_t sector_size; /* In bytes */\n };\n \n struct QCryptoBlockDriver {\ndiff --git a/include/crypto/block.h b/include/crypto/block.h\nindex f0e543bee1..13232b2472 100644\n--- a/include/crypto/block.h\n+++ b/include/crypto/block.h\n@@ -241,6 +241,21 @@ QCryptoHashAlgorithm qcrypto_block_get_kdf_hash(QCryptoBlock *block);\n uint64_t qcrypto_block_get_payload_offset(QCryptoBlock *block);\n \n /**\n+ * qcrypto_block_get_sector_size:\n+ * @block: the block encryption object\n+ *\n+ * Get the size of sectors used for payload encryption. A new\n+ * IV is used at the start of each sector. The encryption\n+ * sector size is not required to match the sector size of the\n+ * underlying storage. For example LUKS will always use a 512\n+ * byte sector size, even if the volume is on a disk with 4k\n+ * sectors.\n+ *\n+ * Returns: the sector in bytes\n+ */\n+uint64_t qcrypto_block_get_sector_size(QCryptoBlock *block);\n+\n+/**\n  * qcrypto_block_free:\n  * @block: the block encryption object\n  *\n",
    "prefixes": [
        "v3",
        "2/7"
    ]
}