From nobody Wed Nov 5 15:59:08 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497356398438424.8837495449826; Tue, 13 Jun 2017 05:19:58 -0700 (PDT) Received: from localhost ([::1]:42998 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dKknc-0001eP-UB for importer@patchew.org; Tue, 13 Jun 2017 08:19:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60620) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dKkm8-0000r7-D5 for qemu-devel@nongnu.org; Tue, 13 Jun 2017 08:18:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dKkm7-00075Z-FJ for qemu-devel@nongnu.org; Tue, 13 Jun 2017 08:18:24 -0400 Received: from mail-he1eur01on0093.outbound.protection.outlook.com ([104.47.0.93]:54165 helo=EUR01-HE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dKkm1-000711-31; Tue, 13 Jun 2017 08:18:17 -0400 Received: from pavelb-Z68P-DS3.sw.ru (195.214.232.6) by HE1PR0802MB2555.eurprd08.prod.outlook.com (2603:10a6:3:e1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Tue, 13 Jun 2017 12:18:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=1S+031VUPpVSl0octMNR9g5LUc9jiRuTezxALPCcrKw=; b=Lw2YkPrVRu5agoMTNZFBWPZbU2FNmDPayCn5uoIRmuRdQfyHTf2mOwWmLfp8Z4RjKRyGYt6gxH8PYIGBii6pDKUuMEsGKGT4FjOSCvqRiNOQtVw2rlsvPJ6R/6gEalRRRnLdKo8sHEoFVqieHexlb6qHtBBzG8Xu3cmbcHTZFIs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=pbutsykin@virtuozzo.com; From: Pavel Butsykin To: qemu-block@nongnu.org, qemu-devel@nongnu.org Date: Tue, 13 Jun 2017 15:16:37 +0300 Message-Id: <20170613121639.17853-3-pbutsykin@virtuozzo.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170613121639.17853-1-pbutsykin@virtuozzo.com> References: <20170613121639.17853-1-pbutsykin@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HK2PR02CA0136.apcprd02.prod.outlook.com (2603:1096:202:16::20) To HE1PR0802MB2555.eurprd08.prod.outlook.com (2603:10a6:3:e1::20) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0802MB2555: X-MS-Office365-Filtering-Correlation-Id: 91648fc3-6786-4bf3-70ec-08d4b2564335 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:HE1PR0802MB2555; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 3:gK5KKQvwElKSEFG9t9Nb4JMjUtbWSA3wxMF7fkgtAV64a11LuLYsvWPbwxRVpWVkvsmsdWSZJuS/jJTDcaOe2SK99bJRJJnizaZD7QzRdBMjcdgcZmz1AHS/xlXt7B0qj4aSs+rb4BHb6LL3urppW4lKCe15uBvtcNjxZVPTwnbP13piN7NZjSkpOrnz07K14M/OurJMwI+TtEK3G0P5SBln0r69xFOVTv7NiUA50hbYofcAoRTAhFGcIsPBkN5njVO5LtFd3tya4/aaLvYm7IBi/TOY50i58y8KtFwdQNmf8pPos6EEdE136El9MMnt7N487RJHmf8DzJ2INYik+Q==; 25:ePbUpWv19RJhld1qk30ryNOLThUkEympvkX0HeSexNIaV5PdS8Y6X8sUQgokCatMONfXTj8oa4ls44qkVZM1kR4kjZyoV5WRe2Ey6CYuau322HU9hxrEWlwgkgIIGZWINtS9E/dySmVIj97nG6ZG2PuUdy2aLtSYrEq6Wpl2R6282fTAT+6xRzXN0wqcUWPUaUvkwvbfTVtbD0jJ908pew7JqWGWTxYfTSaJ39tSDStsKEE+i+kabwum51ToDuU0S2QQyAMgL4i13rIYty2D7i9OPQ902KR+mc//XoNdpCApZMe0Gv8VM8/3FfNONC6YlqVCdHR11weYtTnGXD7oeO0nvWjeqCOWERMNpCrvlgR9vcgT3GFr7V9RyWaF4hOyV+ESOFEBKZRm7gAH8VNSQSJuyFgzGD4k8HeMlzN5USjTVhPKg2NiIRdRceW+ssqrZIYD0c2TKHt1Q+a0/vcpqmJBY/Gvrn+RoVJdQq/oSvM= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 31:9G6L2HrSZ7U9kkBsZvC1oxtjGwDQge+Su06vEfUyizYn491cMdFIwZ+tLmNiYDt/nay54Quk7TMbIq99rd8d18LGtKthixL/mm2jsYQNvokDfUG2D7Tn3pBD4QsV+dq7uhZEsgEGBjRuwa+AMa7JcHukH6+TMi+W0BhubucebtmlI26QYNlEfd3l3aowr5gVXq/DHvOmOrlamIa2jGZqrj9OuflwenngWBDD1XSK0zU=; 20:qJE2Jnlx00Txk2W1jgFNEy3G90EhN+rwNkXXr4/xGD3ptKsVNc2N2aOw6eHGnoitzYAjx6C4wqwBBbwmiNBvZAadV+CEAfF6577I2eGmQJLFT1G0G2I7mU7MxGiMmR0fXUg9Af9WRwB92R3GhlLINLu/hyTL2A7RTNsESlQDzKbpk/wgXIZAdQU4ktGM8WW69jEK2StiRNSYfSRWGPmJVjptVw0biVACF5TequwsIpwmnZrse7siWTCRcHS7GOPo+lDqDbPhHEHYg0IxQalt43kKDl0ATPvUVMD3HoEKf05PVoCgilKz30JA8huP+VQRS/xoHKVVyOv+f4oDlSRONw5hsBXb3q1t4ON4h2lhlYUDmZ5De+5I8AyLqQOy2tXH8AFK4EjheZG96jnL18o5d6pdIzXBlX5ujSotXPTTVCQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(6041248)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR0802MB2555; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR0802MB2555; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2555; 4:hwVrRXgYT2CcgTbG1vyORxp4pSpUT9GIOrjyEoZ9?= =?us-ascii?Q?evoqlnlNhhjQfSm2XcJt5aRcfC3SHAxQbH7iqxU8YZ3zjjRBtGYIF73GKM6s?= =?us-ascii?Q?/7VJiUXS+xac9AJRnBZzOkVgR3UD2F+5g7EDimUUk+jZPSKTZsYVUlVJBoXJ?= =?us-ascii?Q?weMTRk3BGZRlZcM2p1Die5h/PR19iYCasakK9q/mrqerv0hJ/mMRi0tNlp5h?= =?us-ascii?Q?VkkP2b76Gq3urS+3ap+arK+YoxokkupH592mlPlFtKOuFV+rjXSX4BIAvuPc?= =?us-ascii?Q?wgRwQMhlyBDUY6hxRH0xie6RyFcqFsffnxF2yL2EhceXOultvKjV7SzfK10h?= =?us-ascii?Q?x7A4AnnolSwWl+8oU4kAEKkGjGHlfaFmXIQAWyJ+x9PL2wlNnBMl/HmOg/Dh?= =?us-ascii?Q?hEgQeUnZ4Hb07YZXBwWSfu1LUK58SzeRnZmfkXr9TO514loF923d3oM1IKwh?= =?us-ascii?Q?DqIRO9So1rsDMqkG/C0BaIGnMOJM5lqZBYN9nKtA3ctiGGaGVV5JYZKseP0f?= =?us-ascii?Q?GL1WtaZ8k5JdjhJB1ZXPxwpAtZu/szgeOXQuDc3HKDY1bEYLZlpm48DoAvUV?= =?us-ascii?Q?iiXTJmO0DfheZFMlyj3wFDZfDOP3SwM9iZwjGjeGMoYMeUGnd686QOXj/7c+?= =?us-ascii?Q?C+pfa+3xckW/K9rDISV86+TNNRYzIXb7/sc+6P4xsiBx/Q5fDzkqRxFqZUa4?= =?us-ascii?Q?nkn9xXVuy8w3pq11fltaKj+8bIq1h1E9GKereLgvDRG1FoX2/P+oG3Y/w3xW?= =?us-ascii?Q?asl1GMPz0MGS0143n8w4IzSDONaKZ3ibypfPtImjtvVWip515zh6Az4N1cz9?= =?us-ascii?Q?qLWFooS4TS/w5GLkuMBUnyQiTc/jCy5mzb/q6tWDp7GUDRYonAuEJAvbEw0w?= =?us-ascii?Q?851zv9jRAkZZsSSGhwYmIGgO2drO5Bn2SVX0N8jRRPgqo9eOKCc3kCTVSybN?= =?us-ascii?Q?nHeSonFY0/I3DFdcAx8cZEP/BESwbl49fsLJ/+ez7lpSkVdAMgwSsiGH4OgL?= =?us-ascii?Q?y6F4nZ8lsq3aqUOjsCJzwb+2PWxtwdDDZ3FDJotI8BRs3P7mSidmlbqfbTYD?= =?us-ascii?Q?MXOH0E7K7FKcKnav+b4jwE8VDEDmE0Y5pxYldsPxCayAnx0FfJgCgE9oYHQe?= =?us-ascii?Q?AUN8fLSEQa//qVme8kjlIZliGISTlJJh?= X-Forefront-PRVS: 0337AFFE9A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39450400003)(39400400002)(39410400002)(39830400002)(189002)(199003)(6506006)(25786009)(53936002)(50226002)(107886003)(110136004)(4326008)(53416004)(42186005)(6512007)(33646002)(6486002)(106356001)(38730400002)(5660300001)(105586002)(50466002)(5003940100001)(101416001)(305945005)(48376002)(69596002)(81156014)(189998001)(47776003)(66066001)(8676002)(81166006)(6116002)(36756003)(3846002)(97736004)(6666003)(68736007)(86362001)(1076002)(50986999)(76176999)(2950100002)(478600001)(2906002)(7736002)(15760500002); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0802MB2555; H:pavelb-Z68P-DS3.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2555; 23:eQfxo3PqLJcT1Hsw+YpUuYWgB10GIqx1RriBb3h?= =?us-ascii?Q?Cq+NK529wnT6w8Y9nGhcmeb5dhKecVXhzianLYCj+1j98o5kbgU1hnoOKdoJ?= =?us-ascii?Q?XNKe7x+M3Jw+Z7RClybBiTZ8SSMK+aGxzWBzq3ZPqJStthWE2MI2/zZqtZg6?= =?us-ascii?Q?AlXTxv0pk+yJvFuZq8vDOtvPFf052hZRlIk4PUxPmG1TcepW1aXWkYYBm1yL?= =?us-ascii?Q?Cs7itLV1Tf/RLms1n1cBBU9whNK5YcAfQAHrMQa+z/WaPg6Zuv8VE2dKTIw3?= =?us-ascii?Q?Zvc/sS4GBwgGAX5a77lIwWvhlmJ18uCq0+N8Bs2KnAC33ZhJ8BfJ6iHCTdYe?= =?us-ascii?Q?mhZtabMuPsA2gGngLxbnfJvmFdep4HuN8E7/sO/zDxTWQWfaOEfAFGlyHkdt?= =?us-ascii?Q?jJipLYcAA345wzc9K8Sx3SkvUBJHLnWT7q0+Z3PgudZaV3xLWfk1STcYpfOA?= =?us-ascii?Q?cJdWapL7ne1y6Imskxk6REb8GSilVg6/FFcOnLVv9K+gADMJE+aJi3Xr0PpC?= =?us-ascii?Q?rD5ZLOnT2dD4q3NsarPZvwbSZ6p+IqYPBL1JgCkw0lTHgmrDPNd8Y+KnsbK8?= =?us-ascii?Q?e/XPHhTOaHIwV4BVMnxCXVogwi7b2vNNXjNFDTVtsy9613hGYg9jtSAb82P1?= =?us-ascii?Q?UztEkieSVKIKDumf2J5bJJn+M0JwRdcyU3URDPKClJnRICq39Xn0XQQlW2T/?= =?us-ascii?Q?yhxqaZKaa4JFv843DaXYkfCI7hedkjz7dfciyjBuoNkQGRpkPi0SW3JMNSh7?= =?us-ascii?Q?ZtVkQESAMeiKVoAmXqMqu/40dxtpKHK2TWNr7zPjx5mA1iTQ5Kzp55B5a5O4?= =?us-ascii?Q?bBK3Kqe3ZSLp6NAu5QQ5YN5TBxGBaebsZE25KEFaciSh/3ODhLJT8dwG+Lyh?= =?us-ascii?Q?aco54LXyY+84DjfSqsDKyVP5gGE3WJ4nxIQsjeWkufd0+PT0L2Kw7+n6vr+D?= =?us-ascii?Q?2bZhwPQzV8LqBNyasDfMxz9Q71k7JEqyGdlUsb4teZKtXpmXn9O6FaRmgr4o?= =?us-ascii?Q?7RrBVvAGm5mJLZTzqdsWTPHmMKDtisa7/HpOBjXxeJO6Xit3+Owy46Cx71zm?= =?us-ascii?Q?GzXHaCuuHOMTZRkFlxHxlok9M75QTkXBmhsZCye8EL4ZY4NA5MR+/g7gMhkA?= =?us-ascii?Q?E8YKCfzkrQrLe+H6X2Qb0oGh7i/hU3OYNNEbeDpnb/hIh2J2knGZ4r3oxjB1?= =?us-ascii?Q?qeiluzoSBVzkemDvoglgtZrvQB9sr2SpmdO6BopgsJ9wUS6Hxecz4lMEzsFJ?= =?us-ascii?Q?xbh81FSv96FyuZFIx710=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 6:y6TqNs5muYFbIL7scX/yOCT8td0L+2NSLeQjl91lO/wovOqOJ/zUxMN5XRyfDJ8pOfg4Po/rwVoZQO7ECrj+iQrOlUwCVWff05NbC+nxh/2R7m9w8+Wx+MEuI6pxSKfj2v1Ano9+pojX/TboC3MN9l5t3LNTyUtKZXRv6rYNEqxpXhpZ9TZd0A2mV0emi+N3WhwXQyyjZIhGeTi/OLAkhe/nkl0/8yKWQM6/bmW5RuFlXGG1sReINHrhoKa1z/Mr5EKr0SF8kWA3x7KhTey/V/W6PAzLJjuGvPGRy4GLOd+yOgP0FDeOUkFjdUvqUxJLA98tGa0DIInrDdy+FtprJ0sNDQRqHq8k/6iXByYrDkweikPKnmpMmgkgjoRqCUcVNLOQ2fytbaioC7mZCyRg8ykk380bF1eyR2OoIqyyGrVwpa8A6dIsQ1KWOboXiDa1CodmveFByha1eSyykYvCKnphEAvgaSlEK/Rt8M1Y59J4umVwLXb0hEt7R0068j7W15bvoAQhek3tDLNvcc04CQ== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 5:KEcRVlkivvPoVnsz6DxXMkpszcnYvveNv479jw9Dke1WY1+GC6Wub5TdGBmIN8s0P+GvF4U3T/Qtk0cFNZBpPqH7rbwnCWwdo+IdLDMEc9liRZtw2lWfatuJ3V2ojvbBGJlW73J2+ixLMYsdhNelfO89ajcIRCR/RsS13BRNRAlGUQ2FrnLWdYGGuiNwvM8o3TaYYm7x6FTRKrL+8N7HHIsXm+28XS5e7XeS3kOcjwbcw7s5m0n7ehEOvhLTooW1RVs7EXz+DIXfIcujeUZWAs8Fn9luOBG67F+9O6ABWqF/QL3TbI3xVic0JtdODwB9exQbM/9XfuSN83TFU8miCrlk9wXAcxLAstWO2QUQ9bDVibfoTK23BJnIZDktknlktT/u+ujNfkBxJd8JVPjbHrDs8BQ+glT7csgFw+2h8YOKqSgf/uUirHpelEVUOp2HDRIOSQpYaePnLEvWlU+GvAz5vA7v4QPC5yV1WSl8CLPEPIHFob/twhsaIEvX97xf; 24:7gTVIDr2+4fAbbcGUVbGHO893rXHwtlTDMnDbcB6spiT9qNyItIwSd9a7LwVsch0iZG+N+G6gNw+6jpKvKodSy30wjrufS0LUJ9B4lMsBv8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 7:JEBcQWhwxB9EortzEXnK9T8U7wIA5I2S4VImCj0sVpLOcX9NpOWwNG/ClOIaNZx7YL0rXYN08uK5V4475fkcermV4BQOMe+/zCnXw2wkOdCIEsfFuxPNlCUNoeTrgTjaBGttfaclroEgCz/WFKXEo+9I5Gz/U2Gu8+jCo/kMmgeX2ST8jRNXVx6nGi4GW0PnsN7Fwb6G/1E8ayCl2eOB9dcTjFqejyHyylEyxTSOUwuXmnJGdQo9q9NgPgFTvYkbteAKgH+jak+YRmQaw9yhPGJIeKOpU2sZ/0rJjCQi5ZvfWnSysZSyvukPkg6HMu86v0vbY5d6HRR+yMb27vjj+w==; 20:n17m0hfIqOJ+HQnZGnn8XhmVBZWD4KB1rRl3VpZCNABB49/mNZGD9gsjr8XQVwiZfhxXbd2fXMgPyJ4rp1SaAGZ7pdTD7BfBbQNv8o8FijJOi55VeXyQwqhSRJYwm+FAcoZUw/+202hGrbrCaf0e1ZZdvGUGEbV6JiK2kuPzk8E= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2017 12:18:07.8296 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2555 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.0.93 Subject: [Qemu-devel] [PATCH v2 2/4] qcow2: add qcow2_cache_discard X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, pbutsykin@virtuozzo.com, armbru@redhat.com, mreitz@redhat.com, den@openvz.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Whenever l2/refcount table clusters are discarded from the file we can automatically drop unnecessary content of the cache tables. This reduces the chance of eviction useful cache data and eliminates inconsistent data in thecache with the data in the file. Signed-off-by: Pavel Butsykin --- block/qcow2-cache.c | 21 +++++++++++++++++++++ block/qcow2-refcount.c | 5 +++++ block/qcow2.h | 1 + 3 files changed, 27 insertions(+) diff --git a/block/qcow2-cache.c b/block/qcow2-cache.c index 1d25147392..7931edf237 100644 --- a/block/qcow2-cache.c +++ b/block/qcow2-cache.c @@ -411,3 +411,24 @@ void qcow2_cache_entry_mark_dirty(BlockDriverState *bs= , Qcow2Cache *c, assert(c->entries[i].offset !=3D 0); c->entries[i].dirty =3D true; } + +void qcow2_cache_discard(BlockDriverState *bs, Qcow2Cache *c, uint64_t off= set) +{ + int i; + + for (i =3D 0; i < c->size; i++) { + if (c->entries[i].offset =3D=3D offset) { + goto found; /* table offset */ + } + } + return; + +found: + assert(c->entries[i].ref =3D=3D 0); + + c->entries[i].offset =3D 0; + c->entries[i].lru_counter =3D 0; + c->entries[i].dirty =3D false; + + qcow2_cache_table_release(bs, c, i, 1); +} diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c index 7c06061aae..576ab551d6 100644 --- a/block/qcow2-refcount.c +++ b/block/qcow2-refcount.c @@ -767,6 +767,11 @@ static int QEMU_WARN_UNUSED_RESULT update_refcount(Blo= ckDriverState *bs, s->set_refcount(refcount_block, block_index, refcount); =20 if (refcount =3D=3D 0 && s->discard_passthrough[type]) { + qcow2_cache_put(bs, s->refcount_block_cache, &refcount_block); + qcow2_cache_discard(bs, s->refcount_block_cache, offset); + + qcow2_cache_discard(bs, s->l2_table_cache, offset); + update_refcount_discard(bs, cluster_offset, s->cluster_size); } } diff --git a/block/qcow2.h b/block/qcow2.h index 1801dc30dc..07faa6dc78 100644 --- a/block/qcow2.h +++ b/block/qcow2.h @@ -597,5 +597,6 @@ int qcow2_cache_get(BlockDriverState *bs, Qcow2Cache *c= , uint64_t offset, int qcow2_cache_get_empty(BlockDriverState *bs, Qcow2Cache *c, uint64_t of= fset, void **table); void qcow2_cache_put(BlockDriverState *bs, Qcow2Cache *c, void **table); +void qcow2_cache_discard(BlockDriverState *bs, Qcow2Cache *c, uint64_t off= set); =20 #endif --=20 2.13.0