From patchwork Tue Aug 1 14:19:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Nefedov X-Patchwork-Id: 796267 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="ZPBtLp3f"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xMJZr5Rxmz9s81 for ; Wed, 2 Aug 2017 00:28:20 +1000 (AEST) Received: from localhost ([::1]:42887 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dcY9i-00088K-HX for incoming@patchwork.ozlabs.org; Tue, 01 Aug 2017 10:28:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43276) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dcY1N-0000VY-6l for qemu-devel@nongnu.org; Tue, 01 Aug 2017 10:19:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dcY1K-0002WM-9S for qemu-devel@nongnu.org; Tue, 01 Aug 2017 10:19:41 -0400 Received: from mail-he1eur01on0132.outbound.protection.outlook.com ([104.47.0.132]:46811 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 1dcY1K-0002Tv-0v; Tue, 01 Aug 2017 10:19:38 -0400 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=8H0t6uIqMMhPr2ltVMlZKI5P8CtMJyC1dMsm3LGXp20=; b=ZPBtLp3fvSmo4oRBBnQlgoqouVSTYGmz47k3CLP6T63/JD3VGixDaD7kPkiJRTF2RG2nd4PbOBeIGX6Y7Aj0vbOsTBfi7ohU5+AcCzQ1dLh8k/fvXksTYf5cSuvSotO4xFVY0d509fZyqjjbTQXVbQkbXpi69BDtSBCYBAzKKwM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; Received: from xantnef-ws.sw.ru (195.214.232.6) by HE1PR0801MB1996.eurprd08.prod.outlook.com (2603:10a6:3:50::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.22; Tue, 1 Aug 2017 14:19:34 +0000 From: Anton Nefedov To: qemu-devel@nongnu.org Date: Tue, 1 Aug 2017 17:19:08 +0300 Message-Id: <1501597152-25342-12-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1501597152-25342-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1501597152-25342-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0202CA0002.eurprd02.prod.outlook.com (2603:10a6:3:8c::12) To HE1PR0801MB1996.eurprd08.prod.outlook.com (2603:10a6:3:50::9) X-MS-Office365-Filtering-Correlation-Id: 1f18ecb8-0c73-4a4a-a7b7-08d4d8e8559f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:HE1PR0801MB1996; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1996; 3:N/l1AImCQFXXywubR6rI2dz4vO1NygY51lMCHS7JfRghZBoNJJrPnR+hI4/sZe11a+bWkXlEtxFE8OThWk1IYQfD1BDuqaLRJeiJ7T4VMyEfMXNKHz3ek/LeMSWajzIlNqxvo8b4/5I83S7Jvf2x/Z8ATUfq/g3POIXuse0zsQxBEriis/HO9dP0kCbQ612davnwWEk6KcnAhWz1C1KfiYKVoa4wxGbI0R7fob0fhPZ8SkCV1mr0g/BKT90s6vqot2/81W8AHwT3k9LiS7BSsIbQtjWfwllU+EWnNXTH1xEh4JKr5UbGd1u+fDbwhBDcC4a/LzAZp3H2E0BB56V1Kl0oAI7FhdOrhE9zB9G2gWYBXqSSzuXsSvKZJnx329Ki4DufGcGS2jU5uWiR4UgXQMZsJ2H95sMQZl3zsQayTSDu4XvWopMEbosZ1ePXKoFLdV5EBjxDXFiyUOvdLXpMoCg7a3z/dAPMLPWfFgGJcewm4MdFRtZvto9SnGzIdyLMB/qvrT+jfp4PrMn3YAZfx4Z9zspp4CpX35ShuWykIX3rDfIjr1tqOtXhXV5gBt9GYXFgTUkrrayudIaZa2ecJvFJBjDVON5VkvXWrC3ydXKqsxpWaz7+yXd+xr5yv9gXnJWlM2wQfBkl7SEyQA6G9LtL1FUpe3IdX0TSuHkD5KyqDdSI+TRlJ0SHyb9t87UtLxPO4L46yf9uMwlJfUgFxO5x3JdrV5ASO1JQe3VuM9V/mRYFDBJq2iRiYWr4bw4MAd2t9pdmvQatOI99p33fnsJOHjLum+CFvIibTjoFPnsZ3G8VYrdcYLhtfa0WM+Cg X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0801MB1996: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1996; 25:5oW/D38CgCDcQJXw4YgngFwhmkJm06StD1bgnFHdAs5TynRxg98kFAyySkZTopVvVczKO3oWgZwPwJI65dupH/hhC9ihsuIGAvwrHiJxXcotgZjgDqJDJdOd7GuIvZFCFp+OBQJd1JZu4hEUKOGyw+wj9RyFbu820/edyqxsgRvdQZemSe0GnYM14y3DnLA7+tlDJwwLUmL73IVMHFMPwxNbKofsN5CqoWn2EHuM6rz4toJ4mpHzm3Aqz0PxEqyUvXjzO97aEs63VbazJfFAZOTv12IyLJDp4+U7BfQW090owPA5UWluX/m4YkKMy4I5ctZ60h1SfACUwHB38wmTkFDTH7SgIbIGYR02OQenJ68B5PzX9YoiSuB4p+XxkGfOD2425ICg+XZw3PTe7gbTpEC5sWvb+m/QHkht9rCDRB0R1FcO5rG2jqpUqVD0GIzkidPRO6wlIvp+7DrpsC5YHLwHG5q18u7deU+mHhenxLdvUXkXDEtuPUhT6t6zKP1cfzIKLU/TeUltRQ+B5y/41Y9nMDn/vrY2n31sm3auiwUwCYd97CaIcqtPANqhwiEQy8oY2wn9osEJVj38FYiGAVV/j/TME6PjvYWTwJid+H55Y9oRSkpiA3rm+NUHUEysm19M8fNE9s9jtHdJljfT8q+6JOlCMPBYzLrGywPwkWlpR8+x4Oc5avkzXXZ1C2uwM1LPXBfyom1OGQOh5e9Iuxc5A76+CUpVsmvyugyReP8yIJp2qSZN+XhHCy5nneOyBSqkK4M6xsr8/DK5/Lg6DVV9graiiBq9RgFBJ+TAJ/9g2zM+RbL2u8wx1gY/eT28xwhU5rZSrYoEl04HhoupWAsI788riPsO+0bY1E7gQqGSgxZRjYqEeT3mEUjtMzjN+HmQqL7JfB8GXPSySieZhMAdMkJwJ0A3n9/gtCxlGPQ= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1996; 31:OMvTxF4tgwD5ue3JYYykLHsf8fZzll0Z6UZxOixAYkwdHVpU6Mx6BotE6+qgFhjb/WZuEsIgw5Q/0dAeVRf2YSxF23xrssWnnn9YQxCWCU0BSoRk7M269PvlF9AkhSaodijmFV9CC6BlW9IFewNGHftxwfmNSqDx57RSIB46grkjEcin3FmGEru5xMuVadLGCnskxo18zmRirwhv7Ql5MoPClrXH1jFFd3ZYiG4rL7m9MgUfFuzIxc6V/ud6RJhpMF6Vn5CN8TIpsVdeyLLKHl2vshF3d3heSrnZwiuCmyI+slp35CcIM22Ws8bfvfnlF4xHC22eWVs8f+xOQP1ZhTglzou/+pRGup08sLHL46QQXC8LWGIujvBfwJOPlfWOD9/oxBwCUtgQgfBjsaLvNAaH27H9gQo2l0vVNm52IlwPgbvo26dti0D1pKtfl19bSAQz3JqRVsLhYdzDaPQ3ci/JWjgRNKv/hggbScCBS9wg+PVnruFYl6JMo+V0eiA/KxSQp177O28UNZl3iAUZeEjnpg1xlb9OUyXnM6iLMKpCmeWdxwUozDjDPAneHhGbi6ZI/QqFMmbHBfHyTKPlSniQcNiTTwMbP+vLA4FdwG8/5SNqNjTCOECGOQx+VZiMhdlOcUhtHkMYytdOFPiXY6pwvA+oZ+fa6YsYM1NlKAw= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1996; 20:hWi23RlR7cfEaBuR/P1vkTnR7zCpER9olXARrfQzJL/uhc4L8GCQxLmmNnk6WBOirp98H8olSWhYCTRA2PW/m04by+zu4yPrIzFRqhtpO7gtUFYIUtnVWd3h5vi98ZdvhxNBrRSrHWHFpQBf9UhgyNPkHyN1obbKWnde3xsMMBMyOHJmBIJr3Ftwi/4yUjFZV2QnKTOIIHeRUT7meLMfphRYsvK0O5gFirdTKktKnvjbocUMBdOcV7mvCqMu5piqdYzhVAWAjdtrfCic4QjdI22NthJkLwUDJdumVDnVSF8bF+LnZDlm/KqOW8wn4YEILklSQk23VQRGLl/rtk/KgZiUhLd/PvY6jQ69QGCn5rbPDjhXD6rpVgCldglQNtEV3QzpJUPSttC4kaLcROgdx5/R4hnOJlRPzqUvzSZhCC8= X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6041248)(20161123555025)(20161123558100)(20161123562025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR0801MB1996; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR0801MB1996; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0801MB1996; 4:YtH1xyucuy16endnmjCMQkcbLPp3mVKtJu++iB0j?= =?us-ascii?Q?SFxWKYx/dJ5ld6xJ5vxuoTo4p+2qEaf7Z7T+1f3A3LdH/nrQ1rdU8+2w374x?= =?us-ascii?Q?T7s4xAIGBiduB4M9On8fTZAesuyqJSc31vptW00AlGAbZ5JNhxKpHglVeSLr?= =?us-ascii?Q?5XeJQmuNzZbvSTs7L4RaQNNPr1UmoDdF+C5gSJ7Va0rl0Lilv/zsPZMalnrZ?= =?us-ascii?Q?JNqM+FiXY1yCQiu/VRB67jcgFwJz4DqgdzBgrQPSwEVHWTBiRydJvQUOlDv+?= =?us-ascii?Q?/ZjLLQSQukZj4Bl13Kg9pD8EMJhe5E2UIKyTZMlGd3bn8+gyX6a2rXtS3i/q?= =?us-ascii?Q?jRHjdZ+Dfxi5h4KH6x0S6P19smt91Kod414GEmS7QSV0Ydl8VTb5qHZfn960?= =?us-ascii?Q?nQOtugGBHB6Z8MMdLtlkWCAPmj9qGL4o/OcTnV9443Rubg6jVG6Y/9WYOejR?= =?us-ascii?Q?LlGCZ69/+E6c3+fZrdJ7WO1avXEQh3DrT+8iA0Yq1qj+TykAIpz6o3G6iqmp?= =?us-ascii?Q?kV7frG71ggNY9+LWgH4btHk+SVmi0ET6xYoHhMm/wTqgwyO20r8/QqOS7kXM?= =?us-ascii?Q?/NZYuERe5RUQCdZ9ukcnqKYcstntNKMJMEVQjEEzTVVSIA26LfOpAmOk7yDR?= =?us-ascii?Q?flSs93qXAVhPk92wWFFRFGdD1jvGIqzrZ8raChvGukSPiGFeTRHaF/Dsm2cz?= =?us-ascii?Q?o7XpcwO3TzI4RhbpWTIN0bJhBgbB/zqrhE0ijo3ulDPveZEds/x7ghlCgody?= =?us-ascii?Q?MpXnncGG7pYs3yEZR/fWoqmWRAgOUul7aUUb2ndxFWSN2VJ1Cggkc4YQYwVq?= =?us-ascii?Q?46Y67FPJicHFqcGhJ9tq8dAVE7845QXSbstpDS6tms1NrV3Y/n+cDsNooIad?= =?us-ascii?Q?K4nELUf5eMEiuI6cdQQSCWy+2ssvavgrsmhwkWFORiSuP0KoQQL1rfSlgeot?= =?us-ascii?Q?sHonrA2MOBa2kYIMpyjmIXWbl4eORTHqucIVdFqsMbw2a039Hh7+TALpOq/G?= =?us-ascii?Q?i2yKjL9fRGdAOpcfonc8ZewqM9hmG+ER9kjw0HYf/1RhJHv+IDBpZwhR7w+s?= =?us-ascii?Q?7e2tHX2E+MigpMexNLOvRhwwu4ke6AF/NwHOi8jJqf2LUvcUeT76xWUPAK06?= =?us-ascii?Q?p79KeQAXR7bACTtTurfsGoQnt+LcE/9l?= X-Forefront-PRVS: 0386B406AA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(7370300001)(6009001)(39840400002)(39450400003)(39400400002)(39410400002)(189002)(199003)(81166006)(53416004)(42186005)(7350300001)(2351001)(106356001)(2361001)(105586002)(33646002)(25786009)(50466002)(7736002)(38730400002)(189998001)(305945005)(97736004)(48376002)(6512007)(107886003)(53936002)(86362001)(5003940100001)(110136004)(66066001)(6666003)(6486002)(2950100002)(6916009)(50986999)(76176999)(4326008)(68736007)(478600001)(101416001)(8676002)(6506006)(81156014)(2906002)(36756003)(5660300001)(3846002)(6116002)(50226002)(47776003)(69596002); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0801MB1996; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0801MB1996; 23:xg+eE5rgHseRLX9O0HbWdmav7Rqpw/BYOa+YHbj?= =?us-ascii?Q?X2dyw2AZeTz5DvXTtLbA2D723mKdFQqYcwDIZgXcwtgzrJ+G9FgfBdFIGrex?= =?us-ascii?Q?CjgOFFxXqElHJD95hTdSkKaDS8MhNcUGqclUrWpKm2xNoqqQHvcsOx3GIjXI?= =?us-ascii?Q?X8a2M4slZZPLEN3Wq/ii/2jUPgCv1XdOlC9+khGjjjeh/zkNRH/eqaRhBvFI?= =?us-ascii?Q?IZ5P8BgJ73cAMLqG1RK3Qh1P4rAZTu0M3nrjjOn6GlGV3IUs0JiQo90/GJuE?= =?us-ascii?Q?b9U1Sjiago9BuvD8qEv9JrW3NfRySDrAgaglXdU6bAEn4/OLx68UdVqTnFot?= =?us-ascii?Q?ShdBR9Tfiz0eRrMYr9/cGG8X2wH0LobLDf9+9Y+91pQFeycyaYjIhcT9as7L?= =?us-ascii?Q?xCJNWuBUuXwx9Wl2R76p92ZneIRN+HJPPUBhzWYI/ar/TD0NnCi+fUVoegi2?= =?us-ascii?Q?FGaxwHlxdXrMY4loNDwy0YmRal11CinVvygid+ZOGxHVwuDObT+RIMiXBNvN?= =?us-ascii?Q?JqNgYyFUIqhG7frc7WkelKze1brmsCQcTms+SnugVaYMi1owVIDXYAlSy7y1?= =?us-ascii?Q?oN4cc3cQHyDF4hLrnofBwMxwBiI0LLsa2kWpJ8lOxaIKAtSiMXgwA9+Gr5X7?= =?us-ascii?Q?L51wda3aPEKjzlyyaCJEYuV59x5gbKONJSXVl7rAP7GgJo8dw/dr0QqzSUw4?= =?us-ascii?Q?KtY/Y3kdkYG8S2fiifvkf46MuO/O6HcEEQ2woarV+9f3Gwcm9NQS0/C8fdK9?= =?us-ascii?Q?0hSsYPCMWS2DOS2K45s2dW8FhClDX5XUdHg3MOFlaG01SeN+wTR4da3fXFSz?= =?us-ascii?Q?t8roeCc/IORXvkvOTT3Y5QhqwertYXNHzlWKOaPq67D5CNfqPiPyZx/atAWM?= =?us-ascii?Q?Jpt6BfOtoVAjraqecIjQPICVqfUs9ZktRFdjClK44wK6zpCQQJK1dnLcCY8h?= =?us-ascii?Q?dGJp6SNiSgc33ljOeYTsz5Nyo2/xVytSOLf5wIQtdZLbdacy54Nsdk53fQH9?= =?us-ascii?Q?USy7Za4ujMqTrIqZOXBPupQ8SSznE9joZQFO8ipqv9u7pogIWckXqb712neB?= =?us-ascii?Q?GQaUNT/8UkCQ9gjG9cLWeHGY4mZBWZrZNV3icAyH9rfAxDjn4Kho2PviYsan?= =?us-ascii?Q?JcJUQSQcB1dwMbVU7iD9vApVNgj/cRzV7TDiQfhOunLtEjUBbF3Xq4YULhpM?= =?us-ascii?Q?VmMwM44pcxfzPC64R4xyxTS0W+1BF3gJsD78OXvJ8bkS3Fo59K9pIF4SDDjC?= =?us-ascii?Q?XnlFQsiCq3/39jomIMq+EQQs+TQvkKXcMhcueMpAHb7XiJc3MG+D3LZfiRlR?= =?us-ascii?Q?+swZWZy9qY3uVvIRAyTbl+Es=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0801MB1996; 6:ez97MDhyhSXpwPIpR50cukhdNULachH0GR0xmF0C?= =?us-ascii?Q?WrvKbRgxiRMn0IYSgBSkNqbv/U/XQm7yrsy5Gcofj4EDqG2KivRTHn3PEx2c?= =?us-ascii?Q?O2icsp+0JvwOtASI3huIvxPcPGGRNN/eqKKk0ieHHDVFZ6IC4PZTF8FcvUVY?= =?us-ascii?Q?nWVLvHRTc47ZzAWOOD1Yvaet6y6LkihB/puTKlsL9FKkAdE2UB4P1fbz9aUE?= =?us-ascii?Q?vnI08c43XVKl6hnL60tzTTRJ33frTF80CmgPPcEnVHkxuNTJpGXbTQRQHxGO?= =?us-ascii?Q?UlkcEva1XP+wDhKHST3IlK31O7VSxwhUGtzx+wGmhJ12aQQN931JTcBfSlX1?= =?us-ascii?Q?d0Z/X6RDP/GAKl99DBqQBBHIOvBzYRtNSmR9hG1zRscmb15/2B1H9dpPx8tW?= =?us-ascii?Q?V+vA1VZ67ePguG00aLtSBlFrt3yIeEPOyAPayHyXD62zx+fUD/oUqlrYLPaT?= =?us-ascii?Q?n6U4pOcu7GV6lO7I/3Q6xvwYRTL1ldh4VhjXsdmNcqg0X0ZAWxJUlLy7AbJk?= =?us-ascii?Q?QT+D9Tp9LSz/NOYb+l0CVAupIr77om74r7Tz0d1r7/1F9+50hzl2YWKpRC8a?= =?us-ascii?Q?5o3G9/+MR/DibmxG17W+LZZmO+vsSP7fuiaxEQCKC3t+XYw/zVOkmggTfOTJ?= =?us-ascii?Q?e3cy+BF54q/9pCVT2YlFeh++nWrATuuk4pNzf5xN4p2+7KHuaebKTJppCrEP?= =?us-ascii?Q?+WQkjRLfB/RNp0jcRPP0ul0GoHrBC1DEyUoq5P2WXySY6bUep7IS6P/uLvXr?= =?us-ascii?Q?gmpapXnXECHJD6iLz6QJOv5BmoM1RHaapld5U2nf4xYAbFSdr9RdSCN88ckL?= =?us-ascii?Q?IyCgzqdCqPhro50w5XL83mIqx592szn4q3hP+LRRAenyT3Dyr83PnCw+83Cm?= =?us-ascii?Q?y/UCN0PRwyuM8qqpBxSfXVFDp9OqBeNz5jxZPdeIbO1ow/jL6tHSa9sEcAkF?= =?us-ascii?Q?MT9HWoA4aaUEaz9VX3CXQkBWYdsCauG5BJRHLb5PAe5ACTpkKxgjTpcW3xCA?= =?us-ascii?Q?JmI=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1996; 5:AaNQsP8Gr9Z3VRb1hboVpJOgzGauVCHS3O+dOe8GXz7X3J/aZJPm+mDvSoWHx+nr6Q9eu7LDAQpb0fvCxi/vEKGKmxnopyfZAzDDUSNxo2Zv5Ly1WwXheE+f0/YFpCmWcW0/XC8IkA9/Zp/vOYEXdipVegtPXbsqlq8cT9cY5t2aZl/2xlDt6FyIkOIriT5BCb6RXd30wfCiviG0IGLoXrfA+4NVullWeo26KkoX8aFUG9kRynex48xncIIF4TTDD6wFn9oVId+8fFxWhSX6bfZD02akBWkriVR1G7vnBqsfAUym89OVI2J+yWaPWBdAFuQ9MTcFR+KKjm1Gkw7AOM+u81yf31kXbZk66pT62ieGZT943inccwro5Cp7OK+2yDvIMnnWacZD6DNgYLgzGuljglXJFQK7Mit0Hk5YbkAlbCjihivDl2UeHR1IbA/W35v7CAFAJboK0t5g/qkU+2S8/rdGbCzVtOq4QxwXiCqe7Fka6ZxoxRvMt+P0GFEy; 24:mw3GXdCNf3kcOINMu2jCKVxXApnt3exITrSkFX9JKPcC4g/h8x/pHnbJhkA34Laqy2CZH2Kcv4MCn8XnrAHwiLNak8qDTjbw/cKjGl9Ye50= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1996; 7:eICeqT4emeRKd2p9rSAze88xqfnxG5CH1UsWfIQyQli1sw9JPFFqT7H0srXzLYS4EqdDfCzTz0ObALfTSXmcVDJJebODYJ+9ck81357cDC2wmh9nQ5ispUGerHG4Hv5jh7x4FHERCCCxn/+gtzNp+p8xIzEKHZKW8ytTSGCycd2Lndb9k+wZ5K3jhl9wflftiwtrTG0XJMwUETFlBHDLgfOifbGgDZhXB3WcaJG8t4+BCiAUJ7gPtdHXykf582WoEI4AE86P60fm1I6FAWE86hfJ2SjAuu5Yi4FXXFvYehwLJT5VDBgXhqys0gu4m3knevECOk7Pgp2hdCT7NVuovRBNM8Xu7HaBq72QS1nE/eXnpkid8Nh3qi2IzwRGDFX5zTJJcWuVC88suIRvoBN3FApFD4VC9p/IGDxfpkSjnMF1ULKqySHyQNEeAqAqQfrCkvbLNbvcWUTEVTsKX8BYVjUx2tCqTn1xZXRoq7y59AsT3fyAmBf8aanRyrcghc1vlgjYKFgME2uPF73kSpcYWEwDHYS/NJWJmmOBrb/BtTZ4jeCBgBB4FyjIhixcAhxG/430SUZOoVWDnlI345iOvccUeQ2YCZJIEpPxMNuS81sJCe+za5byrC/5EMwSJ0Y+oMIetlQhq/liz/jhOB6RIxLj9v9a4tvcJcL6LlfWObwzztW2JBXx9Op28tpuhc1RXbnnZoLlV9TE17oRmC4u8W9NJ3rfhWmAZgpzBkZt1yJCtd5g2qD7T311j8Tst9zhogEJ3+1rimxLQBeaAQ/iDIAN6Ggqe+nVH0994gwOQ7s= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1996; 20:5Xvfnz15rVirwK/Hh/W2OQG8tjuJv+Amlf0krnZxkc/+TYf8Evy9yIGGPcUaIyS0wqHJjNnj4sIerxXrb47sxhe7NAjIk3hYPDOEe37CYIXByiczIeIF/xHxNHfzs1Fo9sBC9mPW3NMpm9wgTY0agy20q/9Oiebrto/kdnaXAAs= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2017 14:19:34.1777 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1996 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.0.132 Subject: [Qemu-devel] [PATCH v4 11/15] qcow2: move is_zero() up 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, Anton Nefedov , den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" To be used in the following commit without a forward declaration. Signed-off-by: Anton Nefedov --- block/qcow2.c | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/block/qcow2.c b/block/qcow2.c index f522ba9..2ec8b03 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -1946,6 +1946,28 @@ static bool merge_cow(uint64_t offset, unsigned bytes, return false; } +static bool is_zero(BlockDriverState *bs, int64_t offset, int64_t bytes) +{ + int64_t nr; + int64_t res; + int64_t start; + + /* Widen to sector boundaries, then clamp to image length, before + * checking status of underlying sectors */ + start = QEMU_ALIGN_DOWN(offset, BDRV_SECTOR_SIZE); + bytes = QEMU_ALIGN_UP(offset + bytes, BDRV_SECTOR_SIZE) - start; + + if (start + bytes > bs->total_sectors * BDRV_SECTOR_SIZE) { + bytes = bs->total_sectors * BDRV_SECTOR_SIZE - start; + } + + if (!bytes) { + return true; + } + res = bdrv_block_status_above(bs, NULL, start, bytes, &nr, NULL); + return res >= 0 && (res & BDRV_BLOCK_ZERO) && nr == bytes; +} + /* * If the specified area is beyond EOF, allocates it + prealloc_size * bytes ahead. @@ -3088,29 +3110,6 @@ finish: return ret; } - -static bool is_zero(BlockDriverState *bs, int64_t offset, int64_t bytes) -{ - int64_t nr; - int64_t res; - int64_t start; - - /* Widen to sector boundaries, then clamp to image length, before - * checking status of underlying sectors */ - start = QEMU_ALIGN_DOWN(offset, BDRV_SECTOR_SIZE); - bytes = QEMU_ALIGN_UP(offset + bytes, BDRV_SECTOR_SIZE) - start; - - if (start + bytes > bs->total_sectors * BDRV_SECTOR_SIZE) { - bytes = bs->total_sectors * BDRV_SECTOR_SIZE - start; - } - - if (!bytes) { - return true; - } - res = bdrv_block_status_above(bs, NULL, start, bytes, &nr, NULL); - return res >= 0 && (res & BDRV_BLOCK_ZERO) && nr == bytes; -} - static coroutine_fn int qcow2_co_pwrite_zeroes(BlockDriverState *bs, int64_t offset, int bytes, BdrvRequestFlags flags) {