Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/814901/?format=api
{ "id": 814901, "url": "http://patchwork.ozlabs.org/api/patches/814901/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170918124230.8152-3-pbutsykin@virtuozzo.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": "<20170918124230.8152-3-pbutsykin@virtuozzo.com>", "list_archive_url": null, "date": "2017-09-18T12:42:28", "name": "[v8,2/4] qcow2: add qcow2_cache_discard", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "26b637912bb0eb1db3da514ae9067916fd60b20f", "submitter": { "id": 67271, "url": "http://patchwork.ozlabs.org/api/people/67271/?format=api", "name": "Pavel Butsykin", "email": "pbutsykin@virtuozzo.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170918124230.8152-3-pbutsykin@virtuozzo.com/mbox/", "series": [ { "id": 3635, "url": "http://patchwork.ozlabs.org/api/series/3635/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=3635", "date": "2017-09-18T12:42:28", "name": "Add shrink image for qcow2", "version": 8, "mbox": "http://patchwork.ozlabs.org/series/3635/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/814901/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/814901/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>)", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=virtuozzo.com header.i=@virtuozzo.com\n\theader.b=\"L0GGjtl+\"; dkim-atps=neutral", "spf=none (sender IP is )\n\tsmtp.mailfrom=pbutsykin@virtuozzo.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 3xwm046twbz9s78\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 18 Sep 2017 22:43:48 +1000 (AEST)", "from localhost ([::1]:36362 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 1dtvOt-0003OC-2M\n\tfor incoming@patchwork.ozlabs.org; Mon, 18 Sep 2017 08:43:47 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:33407)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <pbutsykin@virtuozzo.com>) id 1dtvO8-0003LI-1f\n\tfor qemu-devel@nongnu.org; Mon, 18 Sep 2017 08:43:01 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <pbutsykin@virtuozzo.com>) id 1dtvO6-0003Qq-Tt\n\tfor qemu-devel@nongnu.org; Mon, 18 Sep 2017 08:43:00 -0400", "from mail-eopbgr00136.outbound.protection.outlook.com\n\t([40.107.0.136]:6071\n\thelo=EUR02-AM5-obe.outbound.protection.outlook.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <pbutsykin@virtuozzo.com>)\n\tid 1dtvO0-0003Gr-Cd; Mon, 18 Sep 2017 08:42:52 -0400", "from pavelb-Z68P-DS3.sw.ru (195.214.232.6) by\n\tDB6PR0802MB2549.eurprd08.prod.outlook.com (2603:10a6:4:a1::19) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.12;\n\tMon, 18 Sep 2017 12:42:48 +0000" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com;\n\ts=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=Ie7ql0Ylerv1TzEr+zgaZKWcGsL3YlQ2nmLOFHqfB7I=;\n\tb=L0GGjtl+zs8hzsIdeYcQbVN5T9bkI+32X9iVEt3w6TS+dgsiofEFuz7rPVtuU1datGYfOCLnOMELHkiahHWbktjnSw0hLnqhyFnBMKI4QxbPEAMU1HMAbASTqj+JB8cczlLSqo6YoBB4K0hGNJhKtIemcW+7aeNTlzsE3Y6UEFA=", "From": "Pavel Butsykin <pbutsykin@virtuozzo.com>", "To": "qemu-block@nongnu.org,\n\tqemu-devel@nongnu.org", "Date": "Mon, 18 Sep 2017 15:42:28 +0300", "Message-Id": "<20170918124230.8152-3-pbutsykin@virtuozzo.com>", "X-Mailer": "git-send-email 2.14.1", "In-Reply-To": "<20170918124230.8152-1-pbutsykin@virtuozzo.com>", "References": "<20170918124230.8152-1-pbutsykin@virtuozzo.com>", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-Originating-IP": "[195.214.232.6]", "X-ClientProxiedBy": "DB6PR0202CA0006.eurprd02.prod.outlook.com\n\t(2603:10a6:4:29::16) To DB6PR0802MB2549.eurprd08.prod.outlook.com\n\t(2603:10a6:4:a1::19)", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id": "117771ff-b346-4931-c6db-08d4fe92c537", "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:DB6PR0802MB2549; ", "X-Microsoft-Exchange-Diagnostics": [ "1; DB6PR0802MB2549;\n\t3:0miuyEXvGDo5ypYLX53lW3igWu54I+wSw2dHUTbe+qaiXyDmFFeBWcv34fQaC48gXwCfDSn7WBfQJlDHRb+UqaINKX0G9v8Ie9xCRwR5lazaCWx6goQ4l8FeznB49wjSxj7x7Q5eTRJXXTUIPf+btpX7leGYjR+Kbyg5NqlOtf/E93gS5fZhzDdH2n+UfhnyuxiLJW7wqt5ne49ysMpgBdLl6r9uEjZWpH7MVt/ET7quQN2z2lg8aFQoK6jwPN+Q;\n\t25:H4n+KUbU07p+Uo4UBfLveCKyynjVL6LmiF2afWVYK4i1wXMH4rTKWo+osqKNLdRVJX9rw+JV5HEsZ1syjIF6k4N3ejGdwIXb/vBSMMCr/u/8B9/sOi6IPB5naHTmwDm5QwAEd5hgmkAPm0whXUrmMNM86Ehh/AVh1m12HCreQzB2+or+FRYj6g/EMlsItucHrrQW+1twll0nOzidxIFYuzhMaWxNyRvJjunq/f/5I9gso5HbfMBBGYraS1mXSquzL7QbNnsiQzbfSDUGBEa0+Ni7bdDVDuAoNihZt30QzCjenuFLDvDTzPxJS6jWgT65Yyyy38WqSDUBnCtYDZJS4Q==;\n\t31:hqXGIVRVsjv61uAWKCIKBca7rb14o0oKrH0HRWpvlPz9O1vEBG3WdDABxuPU8MswtP17c6zuLsOMlkaCHyFTGHd//zKYuX1ogSGBQmLe6CZ5Ckoya2SbncY/UMhfGhOlIw+D8imtWr7PdQldtebwIpVEi++H5pOLQHvgn8VYvBPcSd1RJtZYYZZ6x+Aj/7pWC4SwrH98eoekxdkgkFiY+0Mf1Bcgs+98upBpIDn1yj0=", "1; DB6PR0802MB2549;\n\t20:jteR/OeK4GuamU8ggzRfim82ek7Nz2+XqVK3Ak+HTKM5hAQRYWTSyBNdgP83K7kLd3Z3xpDl+ZbyOHKX4G9TcKV3olnoXHSAaEDzVUx7VIVXfCmY5Ndv9s3u5CkLb6ZFRFmRcIotC3F0KNXHB3ynIEf5rDH3i6C6Vgt/pcWpgcStY56IpNfsj5EYiJlmgxEGjmbTg08kOw4IAgXqiPi4IqJPHBVuVolxU1ZYIuj5dhRDEDF82W/hKZyDrqxWUU0UowiNmbtE5NLknwZ5FzFx4vFawBCuI9NXAstm/8l4CzYSNI1/JJOzZPaLizoHGavIcjvGvq5LO96Jj3Udcc7KZLrlOANAgl4TNtnhA43U0gOnzOknkJ0LlbtHZlkttyL20PueT/5ZYAC26im3hLql6U/jAyxhhy0bQ02jF0ksV4s=;\n\t4:ewViljmMN/Dvte5g0gfMDtf1YyV+t4EX0EE8oMQOIVwvkMa0DkoBYI1xzSd9ZMPB1sQmHr70nsTiNJycs8KSiG8xxe5iJIW32WqvT61Z/7LyD3wGpkYFco33SK5sblvy4on0Qdvrw28MqZHiS7OyQFd9TA7O+5kLviKuK/0LdL7nUYj21uyGmVMQpOuPgZEOGSeR6dxx1bb/IUp89wIFvV3RLOMUujW8btNitsWvVDODbExo46Q6Kgbe4dG7lZc4", "=?us-ascii?Q?1; DB6PR0802MB2549;\n\t23:molDBwm8C/9AvKDkgzdwkrHbboxnXpdyaBXRNLS?=\n\tXly/VnTbeVaJRTrti7dfK5hrfTLvl9oWkQEDvTRRrBNMQAC5OuLmOhk2DqXxOfDANC5LP+Sq1yqxM03j1JfN3YLqPWchUSZdXwoCFkxuGFHthFixWre+91JxRD/qbsoxlUynwX9pMOAQiwk8YUqUHOFqyN3ldZaVeiKDZrTrLTt2pOlGhKBoLBz4Fg1CDVunyX5N/Sua/tO+Li7TzaDQvVUMF7CA9QkMxtUbqIuYrqQy52kG/yAzpRuD6rGMw4iaOMjkz+PDaxUb2W0euPHwLKfrjY86yzZtr7xCjKri/Fh5bNa1Y68L/w60M14EgWJm2sLqOQ5SV0NRYVytWXU2fDWHrWlV3v4nnk2dfJ2zqN4UvYoXHDCfQt8Je9p30jKZJ2iH5golve3J9Pn+7dreG6F8fni/bm7qkvL56dJe8iPbUl6mouq9pjl0vTalA0gt8a8nm2S2cgEN7Uhzsa5y42XQYdkRRA3QBv5ZpWLpKqT8paKZ2TXcuumrOZ/SnaPQnnVUGGty0CLtsPCMnTDPbpmSYeSqdrglG1xJG+RfrizW8jhnGxcCIKiQAfSzHZAgRnYuU7P81i/1flnsZeJmeUFJsXwo+dHug5ucch1P7n0p13KqXgpWJiSOB2JLc1yez9TwFi6JwVHH0nNQ2TWQ+8zl28Ojpv5LUIyTJKFIiqr4iKHH1H3NVOio53cEQTXohpXGRJQpSR0KOjkNiF8BgnSiMGa496r0OR2VRMzh4YZJ5oVtpCFNlulHTtzEjkEdPW4bon+eXhN0Qw+FFDk4XVQfPLUEpg0JMnA8AioucBB1qx5bCGdxlyebzLKvKViOWBbU/nghaP0AA/HNkf7L+1qp2QgaF73uct1yg/U2ZEF21TKIgrxdh4alZY/19zEK3/YvjvxbNgu/+vVqfd9a6cReR+H4Y+FQqj61KByonte1OkCY0N2tUJQj53Lq9bjkfDjPk7+5/UZ9BkyXQ2D0hParvO+yS207IxJydC2KXKWjq11JVibqnO6Npd9C+z13LTpyvP5aveXiAtUtxNUO330pTVPjoF/rmsGJENvWtyA1Uy4ckUBHEegL0TAfqBsxYJN/1dGxPFgfn8xs7k6NOvgg52iZbPAk9GzwZwgW59k9rLr1eWQuYs0ogTM0WwudbersaSyaFXvnabSe2GPr8bD7XyYFLGio1ju+w6fqedAqbz57FvXPoWE+NKvzx+hwJ6aKeC78EfkWbCy/4mVPudfsb7HLQ4rw7L6xWQQSOIVD1fQ==", "1; DB6PR0802MB2549;\n\t6:/6B7XcrNpW+VMSqXdNk0/x7XYXWqbC210MyzQ3go20lhDKf3irzkAmjkfDWbTon7PmmOWTIGfIwJnuVU3RMXoKpOFGCgLg5oPXgxfO9xIGCKh/iyXwPMwwwtfZlVfqgvANuvhr5j1Ii1cwGUxBJ/vjb94HBMSgze3sMRrqpwmGUmsRdfDtC4p/wVTk6uh7EaA82WtQeJ8PkzbKTADJR2oXNlAfgIBETdwUHOyM2JmkwxNlaYkpukW73YaeRvQ0TSj3o1TRf4eaLmaJTj4QT/ApSUXXBpAExb8IaY+/pf28nMbSEdrwxRha8cTo3RgGM8Hkdpy+YKO4J65FsKgMcDOQ==;\n\t5:WxqOII826x9svhHMKpT7hEysoJ8CKe2tHrao89aCVsCgmIKVd312l+aTMfCUu+VeymVSLnhP/jxxFBynr40LTEX8lScDaDA9sQzd95ays2kUtFLP8z0/3Ikxoj4hDjZXKkwBu/SeOpBWMgplrlshQQ==;\n\t24:AdevsPc8yXbe6IKMGRTaOw0yG3rSIsqWBKPpJVvILProvCkdCYwHdanwh1C4iaQFHBFF7KpM4X38VFiymdgo/HrFs2U5j0OOUUFJMO+Nj48=;\n\t7:osCuYQhKqj2tftruUHWrWRTNkW4DqLM+RFq9mFvouKIgdHI9s9obBotLaJ0tgHXN9SM1CPafBZaJHB09xPX8qcMvYDzMgwUxOK5hpSbynIgd4YnwLGr0OMjKSTgbgJmFP904Mcs0gsP0leza6Xd/IVsxKMhuX+nNLKB2sraVS6NxtMJiQ51wpILMOwYgybQ0XeBXv8kltqhoAlv+TTdsPndMF8F88jTF62iWPzZhYjs=", "1; DB6PR0802MB2549;\n\t20:r1xJ3RrfvqrY+cZRBFxK0GVjPbvtR4v+mRwcqAhN/r72lCySGxu5MzsZ8l7MuNdobXtCtPGZUJoMmQAU7fIFFNCbsZembTtgOm4ZUnRtowhvMY1lXFVw71HqksEbBSN8bfYuY4XgqMVkSBxT7xmjk0b4y8XYrffKwpW3TglLRFY=" ], "X-MS-TrafficTypeDiagnostic": "DB6PR0802MB2549:", "X-Exchange-Antispam-Report-Test": "UriScan:;", "X-Microsoft-Antispam-PRVS": "<DB6PR0802MB2549A7F2BDE90E3A516CE775AC630@DB6PR0802MB2549.eurprd08.prod.outlook.com>", "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(20161123564025)(20161123555025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DB6PR0802MB2549; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DB6PR0802MB2549; ", "X-Forefront-PRVS": "04347F8039", "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10019020)(7370300001)(4630300001)(6009001)(346002)(376002)(39830400002)(199003)(189002)(36756003)(48376002)(105586002)(50466002)(107886003)(101416001)(110136004)(53416004)(50226002)(25786009)(305945005)(7736002)(53936002)(81156014)(4326008)(81166006)(6666003)(5003940100001)(68736007)(2906002)(8676002)(6506006)(3846002)(86362001)(478600001)(6486002)(6512007)(1076002)(6116002)(50986999)(76176999)(47776003)(2950100002)(33646002)(575784001)(16586007)(7350300001)(97736004)(16526017)(106356001)(316002)(5660300001)(66066001)(69596002)(189998001)(15760500002);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0802MB2549;\n\tH:pavelb-Z68P-DS3.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1;\n\tMX:1; LANG:en; ", "Received-SPF": "None (protection.outlook.com: virtuozzo.com does not designate\n\tpermitted sender hosts)", "SpamDiagnosticOutput": "1:99", "SpamDiagnosticMetadata": "NSPM", "X-OriginatorOrg": "virtuozzo.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "18 Sep 2017 12:42:48.5873\n\t(UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DB6PR0802MB2549", "X-detected-operating-system": "by eggs.gnu.org: Windows 7 or 8 [fuzzy]", "X-Received-From": "40.107.0.136", "Subject": "[Qemu-devel] [PATCH v8 2/4] qcow2: add qcow2_cache_discard", "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, pbutsykin@virtuozzo.com, jsnow@redhat.com,\n\tarmbru@redhat.com, mreitz@redhat.com, den@openvz.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": "Whenever l2/refcount table clusters are discarded from the file we can\nautomatically drop unnecessary content of the cache tables. This reduces\nthe chance of eviction useful cache data and eliminates inconsistent data\nin the cache with the data in the file.\n\nSigned-off-by: Pavel Butsykin <pbutsykin@virtuozzo.com>\nReviewed-by: Max Reitz <mreitz@redhat.com>\nReviewed-by: John Snow <jsnow@redhat.com>\n---\n block/qcow2-cache.c | 26 ++++++++++++++++++++++++++\n block/qcow2-refcount.c | 20 ++++++++++++++++++--\n block/qcow2.h | 3 +++\n 3 files changed, 47 insertions(+), 2 deletions(-)", "diff": "diff --git a/block/qcow2-cache.c b/block/qcow2-cache.c\nindex 1d25147392..75746a7f43 100644\n--- a/block/qcow2-cache.c\n+++ b/block/qcow2-cache.c\n@@ -411,3 +411,29 @@ void qcow2_cache_entry_mark_dirty(BlockDriverState *bs, Qcow2Cache *c,\n assert(c->entries[i].offset != 0);\n c->entries[i].dirty = true;\n }\n+\n+void *qcow2_cache_is_table_offset(BlockDriverState *bs, Qcow2Cache *c,\n+ uint64_t offset)\n+{\n+ int i;\n+\n+ for (i = 0; i < c->size; i++) {\n+ if (c->entries[i].offset == offset) {\n+ return qcow2_cache_get_table_addr(bs, c, i);\n+ }\n+ }\n+ return NULL;\n+}\n+\n+void qcow2_cache_discard(BlockDriverState *bs, Qcow2Cache *c, void *table)\n+{\n+ int i = qcow2_cache_get_table_idx(bs, c, table);\n+\n+ assert(c->entries[i].ref == 0);\n+\n+ c->entries[i].offset = 0;\n+ c->entries[i].lru_counter = 0;\n+ c->entries[i].dirty = false;\n+\n+ qcow2_cache_table_release(bs, c, i, 1);\n+}\ndiff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c\nindex 168fc32e7b..8c17c0e3aa 100644\n--- a/block/qcow2-refcount.c\n+++ b/block/qcow2-refcount.c\n@@ -861,8 +861,24 @@ static int QEMU_WARN_UNUSED_RESULT update_refcount(BlockDriverState *bs,\n }\n s->set_refcount(refcount_block, block_index, refcount);\n \n- if (refcount == 0 && s->discard_passthrough[type]) {\n- update_refcount_discard(bs, cluster_offset, s->cluster_size);\n+ if (refcount == 0) {\n+ void *table;\n+\n+ table = qcow2_cache_is_table_offset(bs, s->refcount_block_cache,\n+ offset);\n+ if (table != NULL) {\n+ qcow2_cache_put(bs, s->refcount_block_cache, &refcount_block);\n+ qcow2_cache_discard(bs, s->refcount_block_cache, table);\n+ }\n+\n+ table = qcow2_cache_is_table_offset(bs, s->l2_table_cache, offset);\n+ if (table != NULL) {\n+ qcow2_cache_discard(bs, s->l2_table_cache, table);\n+ }\n+\n+ if (s->discard_passthrough[type]) {\n+ update_refcount_discard(bs, cluster_offset, s->cluster_size);\n+ }\n }\n }\n \ndiff --git a/block/qcow2.h b/block/qcow2.h\nindex 96a8d43c17..52c374e9ed 100644\n--- a/block/qcow2.h\n+++ b/block/qcow2.h\n@@ -649,6 +649,9 @@ int qcow2_cache_get(BlockDriverState *bs, Qcow2Cache *c, uint64_t offset,\n int qcow2_cache_get_empty(BlockDriverState *bs, Qcow2Cache *c, uint64_t offset,\n void **table);\n void qcow2_cache_put(BlockDriverState *bs, Qcow2Cache *c, void **table);\n+void *qcow2_cache_is_table_offset(BlockDriverState *bs, Qcow2Cache *c,\n+ uint64_t offset);\n+void qcow2_cache_discard(BlockDriverState *bs, Qcow2Cache *c, void *table);\n \n /* qcow2-bitmap.c functions */\n int qcow2_check_bitmaps_refcounts(BlockDriverState *bs, BdrvCheckResult *res,\n", "prefixes": [ "v8", "2/4" ] }