Show a cover letter.

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

{
    "id": 818274,
    "url": "http://patchwork.ozlabs.org/api/covers/818274/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20170925145526.32690-1-eblake@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": "<20170925145526.32690-1-eblake@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-25T14:55:06",
    "name": "[v10,00/20] make dirty-bitmap byte-based",
    "submitter": {
        "id": 6591,
        "url": "http://patchwork.ozlabs.org/api/people/6591/?format=api",
        "name": "Eric Blake",
        "email": "eblake@redhat.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20170925145526.32690-1-eblake@redhat.com/mbox/",
    "series": [
        {
            "id": 4978,
            "url": "http://patchwork.ozlabs.org/api/series/4978/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=4978",
            "date": "2017-09-25T14:55:06",
            "name": "make dirty-bitmap byte-based",
            "version": 10,
            "mbox": "http://patchwork.ozlabs.org/series/4978/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/818274/comments/",
    "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-mx02.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx02.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=eblake@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 3y16cJ6Sp4z9t67\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 26 Sep 2017 00:56:48 +1000 (AEST)",
            "from localhost ([::1]:42829 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 1dwUoQ-0005iI-Si\n\tfor incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 10:56:46 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:53944)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <eblake@redhat.com>) id 1dwUnb-0005gF-NI\n\tfor qemu-devel@nongnu.org; Mon, 25 Sep 2017 10:55:57 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <eblake@redhat.com>) id 1dwUna-00037V-Di\n\tfor qemu-devel@nongnu.org; Mon, 25 Sep 2017 10:55:55 -0400",
            "from mx1.redhat.com ([209.132.183.28]:39550)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <eblake@redhat.com>)\n\tid 1dwUnT-00034T-Hd; Mon, 25 Sep 2017 10:55:47 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13])\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 5BADB806BE;\n\tMon, 25 Sep 2017 14:55:46 +0000 (UTC)",
            "from red.redhat.com (ovpn-124-97.rdu2.redhat.com [10.10.124.97])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 32B476F13C;\n\tMon, 25 Sep 2017 14:55:28 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 5BADB806BE",
        "From": "Eric Blake <eblake@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Mon, 25 Sep 2017 09:55:06 -0500",
        "Message-Id": "<20170925145526.32690-1-eblake@redhat.com>",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.13",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.26]);\n\tMon, 25 Sep 2017 14:55:46 +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 v10 00/20] make dirty-bitmap byte-based",
        "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": "kwolf@redhat.com, famz@redhat.com, vsementsov@virtuozzo.com,\n\tjsnow@redhat.com, qemu-block@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": "There are patches floating around to add NBD_CMD_BLOCK_STATUS,\nbut NBD wants to report status on byte granularity (even if the\nreporting will probably be naturally aligned to sectors or even\nmuch higher levels).  I've therefore started the task of\nconverting our block status code to report at a byte granularity\nrather than sectors.\n\nNow that 2.11 is open, I'm rebasing/reposting the remaining patches.\n\nThe overall conversion currently looks like:\npart 1: bdrv_is_allocated (merged in 2.10, commit 51b0a488)\npart 2: dirty-bitmap (this series, v9 was here [1])\npart 3: bdrv_get_block_status (v4 is posted [2] and is mostly reviewed)\npart 4: .bdrv_co_block_status (v3 is posted [3], but needs review)\n\nAvailable as a tag at:\ngit fetch git://repo.or.cz/qemu/ericb.git nbd-byte-dirty-v10\n\n[1] https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg05387.html\n[2] https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg03543.html\n[3] https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg03812.html\n\nSince v9:\n- another try at patch 5 [John]\n- add R-b where appropriate\n\n001/20:[----] [--] 'block: Make bdrv_img_create() size selection easier to read'\n002/20:[----] [--] 'hbitmap: Rename serialization_granularity to serialization_align'\n003/20:[----] [--] 'qcow2: Ensure bitmap serialization is aligned'\n004/20:[----] [--] 'dirty-bitmap: Drop unused functions'\n005/20:[0003] [FC] 'dirty-bitmap: Avoid size query failure during truncate'\n006/20:[----] [--] 'dirty-bitmap: Change bdrv_dirty_bitmap_size() to report bytes'\n007/20:[----] [--] 'dirty-bitmap: Track bitmap size by bytes'\n008/20:[----] [--] 'dirty-bitmap: Change bdrv_dirty_bitmap_*serialize*() to take bytes'\n009/20:[----] [--] 'qcow2: Switch sectors_covered_by_bitmap_cluster() to byte-based'\n010/20:[----] [--] 'dirty-bitmap: Set iterator start by offset, not sector'\n011/20:[----] [--] 'dirty-bitmap: Change bdrv_dirty_iter_next() to report byte offset'\n012/20:[----] [--] 'dirty-bitmap: Change bdrv_get_dirty_count() to report bytes'\n013/20:[----] [--] 'dirty-bitmap: Change bdrv_get_dirty_locked() to take bytes'\n014/20:[----] [--] 'dirty-bitmap: Change bdrv_[re]set_dirty_bitmap() to use bytes'\n015/20:[----] [--] 'mirror: Switch mirror_dirty_init() to byte-based iteration'\n016/20:[----] [--] 'qcow2: Switch qcow2_measure() to byte-based iteration'\n017/20:[----] [--] 'qcow2: Switch load_bitmap_data() to byte-based iteration'\n018/20:[----] [--] 'qcow2: Switch store_bitmap_data() to byte-based iteration'\n019/20:[----] [--] 'dirty-bitmap: Switch bdrv_set_dirty() to bytes'\n020/20:[----] [--] 'dirty-bitmap: Convert internal hbitmap size/granularity'\n\nEric Blake (20):\n  block: Make bdrv_img_create() size selection easier to read\n  hbitmap: Rename serialization_granularity to serialization_align\n  qcow2: Ensure bitmap serialization is aligned\n  dirty-bitmap: Drop unused functions\n  dirty-bitmap: Avoid size query failure during truncate\n  dirty-bitmap: Change bdrv_dirty_bitmap_size() to report bytes\n  dirty-bitmap: Track bitmap size by bytes\n  dirty-bitmap: Change bdrv_dirty_bitmap_*serialize*() to take bytes\n  qcow2: Switch sectors_covered_by_bitmap_cluster() to byte-based\n  dirty-bitmap: Set iterator start by offset, not sector\n  dirty-bitmap: Change bdrv_dirty_iter_next() to report byte offset\n  dirty-bitmap: Change bdrv_get_dirty_count() to report bytes\n  dirty-bitmap: Change bdrv_get_dirty_locked() to take bytes\n  dirty-bitmap: Change bdrv_[re]set_dirty_bitmap() to use bytes\n  mirror: Switch mirror_dirty_init() to byte-based iteration\n  qcow2: Switch qcow2_measure() to byte-based iteration\n  qcow2: Switch load_bitmap_data() to byte-based iteration\n  qcow2: Switch store_bitmap_data() to byte-based iteration\n  dirty-bitmap: Switch bdrv_set_dirty() to bytes\n  dirty-bitmap: Convert internal hbitmap size/granularity\n\n include/block/block_int.h    |   2 +-\n include/block/dirty-bitmap.h |  43 ++++++--------\n include/qemu/hbitmap.h       |   8 +--\n block/io.c                   |   6 +-\n block.c                      |  18 ++++--\n block/backup.c               |   7 +--\n block/dirty-bitmap.c         | 134 ++++++++++++++-----------------------------\n block/mirror.c               |  79 +++++++++++--------------\n block/qcow2-bitmap.c         |  62 +++++++++++---------\n block/qcow2.c                |  22 ++++---\n migration/block.c            |  12 ++--\n tests/test-hbitmap.c         |  10 ++--\n util/hbitmap.c               |   8 +--\n tests/qemu-iotests/165       |   2 +-\n 14 files changed, 174 insertions(+), 239 deletions(-)"
}