From nobody Tue Feb 10 01:34:55 2026 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.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 1499777344762897.9012218383702; Tue, 11 Jul 2017 05:49:04 -0700 (PDT) Received: from localhost ([::1]:46171 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dUub7-0000b1-A2 for importer@patchew.org; Tue, 11 Jul 2017 08:49:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34616) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dUuXY-0006NC-Ng for qemu-devel@nongnu.org; Tue, 11 Jul 2017 08:45:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dUuXX-0005mQ-Gd for qemu-devel@nongnu.org; Tue, 11 Jul 2017 08:45:20 -0400 Received: from mail-eopbgr30108.outbound.protection.outlook.com ([40.107.3.108]:53030 helo=EUR03-AM5-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 1dUuXS-0005jN-8t; Tue, 11 Jul 2017 08:45:14 -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.1240.13; Tue, 11 Jul 2017 12:45:11 +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=JkdH666IEcAytXukDj7ShDtxoXhAXPsRpVsDHdkYOKg=; b=Uc0U38GiLaU6/qyWcM1wwraqggLm0M0uLT5RSpcnxfCtS0CwuHawhZL5tGz7Sr7W49ZBstxn+OIn5JiKIE6tOLjxgj5eu+vBXPUUDsGN7/i7G5Ree7yyw9a4sQEYy5Z8eHFyg0HPz3PzuSnWdQIce/xkCUz+gJw/d3WILAwi+V8= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none; nongnu.org; dmarc=none action=none header.from=virtuozzo.com; From: Pavel Butsykin To: qemu-block@nongnu.org, qemu-devel@nongnu.org Date: Tue, 11 Jul 2017 15:40:21 +0300 Message-Id: <20170711124024.1396-2-pbutsykin@virtuozzo.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170711124024.1396-1-pbutsykin@virtuozzo.com> References: <20170711124024.1396-1-pbutsykin@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM4PR05CA0001.eurprd05.prod.outlook.com (2603:10a6:205::14) To HE1PR0802MB2555.eurprd08.prod.outlook.com (2603:10a6:3:e1::20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 098f4871-9602-45cf-4252-08d4c85aabc9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:HE1PR0802MB2555; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 3:49/hBKssGTXuJT0dzwK29aFCj2eF42nI0QIqtKgUrWKtyREKO8VXB1Bh2xTN3ca/nXHTfoyr5Jm4BqFdq3mZtsvV9pvuZqw8YWCH31M2aeAJ3B1ps2WtexTvyZixDQE+oRGmFAyb3udn2xSJFcEfKeyydbNyP3lBkrS81vMEM7Qm6AZ2Clh0K/reYl3wQsCmN+JE/lygvJAjrRfGwHiPV3Eg8aKuwfMckpaG7otNX59m+bG8mMIOfRkjoZZJSVFZXn48JEPDf4SXXOI/h83dZUS/A7/EQLH7uInRCh8XJrWXCA9id4MPYq536XKzbvP79W0DE4Z6la1iruIoyfGORoNKAWnVFZmhElt86Hnp+ImSEvxsMoV1FDpJ5FhSnCHNkzfx99a3Gb0yYYIWFswJRCN7iN7EgNzpn0PlLsAANy01YR+MHy+qu4wfROO7LBE5EqbW6R8TCvzVEetGDKhsn87bUxV6VSWhjmBqcR5AQZVq+UsJR4l7e9TkCUfpSRj+0g8menQatilGxxgomkp2+jT6Q14AGZ9ArvFqW6j6E+3mLJnE80wEZd69cpkBCur4Zlz0l5BeF2KpF0X/e1tu9txgrCmZkgkGh/eXaZlaDgUNFzsIhuzxujIKid6SdSp580zWmoqhLmbOv8NUggz3pY9iNpBJ/Au0nUsGWFYyn2eoKX6mYF5Nsp67qb2dIsoVxK4LIF6FUprOjDTEWT/2MzYIAJrjt0Zr+EMmOJxae0Q= X-MS-TrafficTypeDiagnostic: HE1PR0802MB2555: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 25:VDzUxNZIqbaJsNsD3gdEaNtRH2xOIgfSq1+RGZUTxLT07YO3yyydxJV4z/DEY32/UcfpycmCPXwjNxVjfbA5AiaMbl0SVNFY7U53vky0JQfM7bq2bYyg91mIsc37vfxbC8Sblx626+qW9FifxY3bfQlL/UOs2qhKEl9BA/gzg+fmM3D8v4m3spTv5DpwFtpJX6tNMIEPXTd5wA1Ti3nkKgNjI29ZXMqnE8Y7kOtp8A0Hpo4BkrA8p3OFjHsl6dWicZotnOnlgKPkcj9VGe2xqpKkK4dvQi6SnHG2shFei0sREDtAdlNEfuzevGVF0YBkQZG2OWrpZZuEg2PQCBtKlWLeAm1XKhEBlc0Rbz32FjaEdhyMUisd+Nz+D4YlZIVgUdo5CK0wckp+wuBXutn3B+Icpkwa11L4+FC59FL1ShjEQrT8aWjJLE6qLLp0lqJfCeo3B6sOUZX9FZgXrYYWhiOCW/EV1PIO48xJGx739Jfyd+6FKseNciqzP8wbyvh6DF0xVhsbnPvpgnGGhuKUa95cC38AteDlzAO9i5Y++M68QYV1TYKAEkpikAAYmu9fbJahnQntVUCUn9vCMFuXQs4tNj9WRws1OsRj/93kX6qA1i2r2J3ns87TiyLDtwB3SoA6arUtC+vYprdVLbM6lbKl9Ty0WmQgoYhPSvWiypLLBeuTdetdEavUs+3dQpOaZIzamyTACkGzHniLzPiFZligxWef8GGKhul/NdgywYt3IU03s/PT42+PFwzgE4N4oeN6LvpCPcrkSCeD4/figz+WjGhxaadjNrMLklF/vlFrT2x6Qcni6haLo4H6JO9iNOjWWIZxBmxCwbv3DII2LQSj2hyOoLmaRdhv3y3pyVvfQhkjLvoQTUWI51QYny+jsRGCro8kXMwSYWd1IQxek6Y/sNVpHJxf7y3EbWbY0Fk= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 31:TX6RmD6ZY4hb7lf1fU6uxAUb15CQCCaN/5o7JprkwWF+SXLu1G5U2DSypcG0VlcwBpZrI1nTlwdmeTPZt2F2HBfyf7/AHpwIHPT6rPohLANXBv/T9dYpX49brEgPUC+ZTXm0L+Iv5MaObKlMXYEJLakyYBkwcyxxl7x1FtW4T4YPGjw4MiYqghooeBDqd/oxu6AZ5qrtMLpYoVov6uu+2J7AreFOlUiVLd83zipvjdQEN0m+pfoLuaxYk+iSosGqtiQVcgcGmDcSKFffl2YG8bBcMlt/5ZY5BXFfwDUuxbISu7o33GXx3q0gW4PVF2M8gqWQrnlpt1O9Wdey6q9k+p/sKoCqY5su8sVRYGrX0D5ARzmH41frraAlmcx3WO9dPoAnK2VtI4aTOSGA8/VhfPmrIMtcibwzgsO/hlmW7zSJv0VDO1T1zzo0yXnyRor7El0+La0Y6HB8MFnyyd/1vT3pquOqqTAL03+GGbU5EpIj3yhfmmQXQ+suT3FUZCrCJrLGCPZY+0Kj/hd/YxKY69Owv3IFI8+2OmrJ7C6I/aN7Pmx5dKB+nhEpZVzMtIawgw9hspRHKmV7sP42VnsiT8FfUo0su/ehHvQXyvmbwnqY19u3Scvutn+p0wW0A1g7hVVAJbw12xg4G/zSRziXQd6qFxiYCuaRA6bGnL030fQ= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 20:R3xQ3QL0Nz1MReLloer3j054tD83TA68g/UZW0sex325N5m0+/1qnKeDOWEe4cDjAANsUrlwi9DSceNJPlkQv+gDch8BgLQpFzsUAzF3UujvLhIZ4q/YJAH/lX30TnEa/uCNA8hO7uENcIRKRs50hZFSDlNOdX7fRfvjEP9hG5U6jG0VlwKEnokmBvvmVdIDlb/UgACvaIcChEGCLjImXsAhVU5TsScFKx9dqQUM4gZukSpSfPC20MiyNqpiAIBmGmpKDBxrhmHPojewfB0UUmozBKTibrF6/YTp3iVgcHV04QSwB61MW2E3T8ncYQZpeSVamHzpbiaau1yCAZrGflUeDoSICHkYKHMAT6rLPJ4DDqzcTeNLqe+eZj87FQdEVZtlwSIu2JXfsH/50aszDy/Apq9S3cIKLkSfLBlk+3Q= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(148574349560750)(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123555025)(20161123560025)(20161123558100)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(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:d9+zFAg025Jmk35Gtsb8CJ8YKs/YEiFZ5BZxoZgi?= =?us-ascii?Q?X/rsFfwWRJBhrXX/Or9GolGpwUu/x/vCf9qE1y9rLHrgr2piNFlrZ6bTJS38?= =?us-ascii?Q?LyYrovfTEzmopXifoO5PD/yFHA9DB30Mv0JLj95nMF0g3O41ENrU8pUsFWKq?= =?us-ascii?Q?w86gwd08cZsa4jCRYce8W02E0SNzhIKn0b1iarxjL3aYbIUITLMe5iFj+FX3?= =?us-ascii?Q?qZwMF9sW/ROx+PLeOHVdWTN734TW2kCbvxd+xdQVwobq8dcw4oMf/QAS+6Fk?= =?us-ascii?Q?o4vyDPi8vpRzM1HW2kAumqrV0V1hSRYnMVtXM5sXHN1m6cTpZP5xr8jreKmu?= =?us-ascii?Q?Q3yy2hdWRmu+6LgJ5KV1XNkLG4alc5+dzxStnPnSKWjEUAo0k72J2UfxtaVP?= =?us-ascii?Q?B8RVQdYGa2RfzU2BtXAT7Uw9c0eRnAGrpbdXUJSuhxnAkPa+yFgC7ZOZLjmj?= =?us-ascii?Q?J+yaTHD07aSaJM3q89h8s5geYhBbq2xNlZoSst9DRT5CyFdjfdpsFQtOkIt8?= =?us-ascii?Q?QyXfb5vzoA8ZI6CHzdY+U4P3lweCFryBOvHG6l1u+5dcHJoaeHrzhZt4iul8?= =?us-ascii?Q?QXvBnvQ5luVx2yU3LUIwfdlhPGOzlDG5Se2M6lOnPsR7is81TMM7BmqjcbP1?= =?us-ascii?Q?15VX67jHoqLWmzK0jx7OcOzhibduAtcXabukqxGinJnVOB3DyhkzT2Jd71u8?= =?us-ascii?Q?Pf/7DJV85NQThZ3wfIdLJRVKMGIV9W/+R5CW4hIwf7PXQFLEXyKgkL8pUMOi?= =?us-ascii?Q?FflGSbrzYrl6en88/mGsg+04n6FonQgQ/qOesG5X18DQOuwyYFFcCxCsFmUe?= =?us-ascii?Q?gPFux3YeBE+sSeh7kpz2rQcv2LjErIcbq++F7sT4j8azC7R6MVxqANJ++ZtN?= =?us-ascii?Q?fASjHLuVf1BPLH/mE2n+kAcHeS6qYDkSETjF1uCIGKKoMCC1kagywCtIWpm0?= =?us-ascii?Q?wymQGd8VHP96FxENBdOO6F4tWHrpWGWzKXz/tF6JjjPJ7hQzrRWPolIB/pFo?= =?us-ascii?Q?S+Ya0jTOhPe2XNUn4k675r0xcgDyM9WB2xZ2gqKyuQVG91bUyRTJXFJXAkuP?= =?us-ascii?Q?s2u+8TVI20v3rEnzB7SkLza+7Fsb0RvFIMuWSYt92PLBpKXp6WD6HNV0kXCk?= =?us-ascii?Q?GlonXpMOIbFGkEgQGvh7uWxVvx1zyT/PNKTOJWj5vjd/UAVreoJbAZ0BqnhH?= =?us-ascii?Q?5Lu2Gz8ntvliz+rhoo7m1TxWCQ73szrBtacdDasxKjTZSYWhLOTqVve+Z8pW?= =?us-ascii?Q?tooju3meHP402oi4MgDb5o103y6VvDboZqNomP1LrGGi1SZZo3moTeSi5gTy?= =?us-ascii?Q?Rw=3D=3D?= X-Forefront-PRVS: 0365C0E14B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(7370300001)(6009001)(39450400003)(39830400002)(39400400002)(39410400002)(6666003)(2906002)(478600001)(5003940100001)(86362001)(5660300001)(2950100002)(36756003)(8676002)(50226002)(1076002)(50466002)(6506006)(6512007)(53936002)(6486002)(50986999)(48376002)(76176999)(7736002)(6116002)(305945005)(53416004)(3846002)(42186005)(33646002)(81166006)(7350300001)(4326008)(25786009)(110136004)(38730400002)(189998001)(66066001)(47776003)(107886003); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0802MB2555; H:pavelb-Z68P-DS3.sw.ru; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2555; 23:aIp8LpawFWZcYyam7mras8fXrZ3FKATHVsym35B?= =?us-ascii?Q?+IX7pF5x+bPoQp/qIfB7FEuBe0ob98++pHolMwFfXNMgMphrt8omMSqgMfmJ?= =?us-ascii?Q?fNpVCGfC/wilXm3NTZDXBKEhATVFjshZcESctIDdlXP5vvZP7jLuQ+ySiJM0?= =?us-ascii?Q?zC89C33KKXoTlEDYzAy9qR0z7A1Jc3KRxL2EQRcRGWBB+KfkOb9qze2Qq0w/?= =?us-ascii?Q?mNuXud0LAN8uUtz+gd+6R1cebjtK3FtG9JmZOE7d4wzWom6hsi4aqnr4GBBw?= =?us-ascii?Q?4Fjk03cajMtZ2oZL30g3YMy+FmjH/Kq3w5h7CJ5l06WuSTG/mH+PiOBxYmZ6?= =?us-ascii?Q?etUsjG6SRcciqn94UduFCUDU5Dmt3euwpIk1t4BrlT2GGD7VTewoNTNelOLo?= =?us-ascii?Q?VfQCIF26ShWus1V4NWsoHpbT0zN7ztE6VJqnVCJrD7n9sZYZLPM5g2eMHjtQ?= =?us-ascii?Q?rWSu7oLxLdqzfS+1VLmDvELS8H6fk+LZMfl4YMG3jY5o5KNQmPpAUDhTC22L?= =?us-ascii?Q?VibI6qFw/UfW+ftaKr18Mk9MFzfOjLEtOHUtr2xoY8XwG6Wu1/bbhJTZhGi1?= =?us-ascii?Q?VmkeuktXY/mcrSJhWzzwUQQR7QgF4hjtyFklWXNyv++RLJ/oqLru6CFPi0se?= =?us-ascii?Q?Y315w7QukaFWUsJ/WuShYvb5PZ5+sNkrsvhFO9WdQb686oK7wxP+fqBl4k9P?= =?us-ascii?Q?wIGrdY85qYA1sW8vgXXipT30JVYqIDK45Av9jTHV2+ezHcZFlv3adNV84BPT?= =?us-ascii?Q?NdqieAsAbz3bFixTscF+AdPjW6KLiVo32w5UTUDqe4qGHDKUhwkaBelt+kVq?= =?us-ascii?Q?Nv2bcnfDb5qnL6eCEy221CQxi7piGlILEnprLzGF+mdAf9y0m+g3pi5OMtvh?= =?us-ascii?Q?pCCJa6+xMA8eg64B+hEd9J1I8Y/c4W9fHULvq4xSdcJQkQlWBsdSsgez93db?= =?us-ascii?Q?r78ut0zvjS9RxQukqMfryl08ijI7zYVesM3hEHWvsK2rt3wRgPdfkpYK+OjG?= =?us-ascii?Q?FsOVB2OH05aETEZqwhN7FvLBlk6gknSnHXCOdjy5avobVQFCOReFGtNCpDdD?= =?us-ascii?Q?THmSy7n/elnHS22JqJIBUW4L69PXujCt/SB3J3jeeq/iI+LVQhw=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2555; 6:rhH3wAmfeketoG9a/NNQnC8LFfQorScWHxot+0NO?= =?us-ascii?Q?S9cLYS1SGYUbKoMAnBhxWvksb7jxjaTAB9JII9dfPQnkGTF4QVERhbZHvkRN?= =?us-ascii?Q?7PbpxYNI144gRI9ZqNUfQN1E4vp941MFsBBXj6i9dTj52QerzABUWZo+GACE?= =?us-ascii?Q?BQULorvChA5//YzzYn/CFYs4Yxhb1cFDcoqFVH/9PBAouZN2eyCx/OOt8NVS?= =?us-ascii?Q?zNwV/XmmcHOfotfq5NcYdqSR9SyK+MmDZ/Lv1TgVQ5Pvt69ADwIb1U+1CYDu?= =?us-ascii?Q?NZ6GP5W5DTrrVSD7NwNwFkePB4TVwNfQ+ESrgzDcPKxggb2DLUZiyyAUNm0w?= =?us-ascii?Q?9bhus5gc3fuWdsJv+zZoDwIjyEJphLQIZl939ezGXsLsjhlMVHlGAYcYWd/z?= =?us-ascii?Q?hlbo7cu8o6DSNyX7fMUNbXJKi/IdLjYrMzndv0yXxddqafkk3sICQEyS2Dzs?= =?us-ascii?Q?LKJiHsv2/jpTJ46TbjL3ZYSgBPk0QCFR+YOJAdRgmOEyMNmBw93gjfN6N6zv?= =?us-ascii?Q?nPUx149tyY8fIxvUyQpz/2CmCAV1P7y/NKfoPAzskjErTHmVSjcy1JTZtIHi?= =?us-ascii?Q?EPV8eFdILRV2qnMNnqxa9x1rPIRJw/Wotrrmhf9VMsCIQddrIFVo1kPt389G?= =?us-ascii?Q?Ftr6i8wkVhB2lWM+GkuIY1pciUbDezP6u1VACIczNB/9GFGnlcPf25BP1Meh?= =?us-ascii?Q?qIlL1fcR5BJKLJyxyVMwjffecOfW8ucUjDToX04QykyYGgx7btcCkAzyDsp5?= =?us-ascii?Q?e1gWpAEgdZ5roiF4PkQf7Uu1uLnYyjV3Pi7jp4iPWxqw2X2IxvFo0jyPVpcj?= =?us-ascii?Q?hVNM3nrJz/c2E/qOL3HKhOV/6yF2OnQi7aOfxomw7LcIZ0USUmjmrnZIr03g?= =?us-ascii?Q?b9uQ7vZ057h5rgDOz0mpCim534quWqqbkJZGJduhicTjqYxS2CG5XfAOh61e?= =?us-ascii?Q?lPvyFDAUGWg8NHGOsyzRILvq1N2/3QAGsS/SzQO7Hrv1sDDdDzlUTxsvjV3c?= =?us-ascii?Q?2W4=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 5:ICFnQLFHpFJjWZIBQOgfOmFwD0eYa0BtMxgvN0h8O5CR7yiIdM/1Bjqnk37PzSrael3tqJ7lgvCqU0RT64ioVI5gSvemEcEprIB6Y49MOE7Ge5k+Idq5qrc8Six5SKVspPagQJFle7PBmy0w/6c8o+q5Hb3qCLPuV8VTOlCguaXO1uu7fTByJZKYHPhl6Qb6IIaZivVtFc3nuf9yy8ks4FaHcOsCdVZkaFjr+4WT5DP7uwc8nMWOJbbYmaQ9resu8zcqAQsI8kXQUtQ2CzettFCV+QmFgLUXCn9yl9tte4aIkf5UReT/DeS3ropawnjQmf0K0qFCWPx7rKXt44gLPvb+B8X9+33AQliliPT/zzAXjhKcsDsdV9tSJI1g2Tg3rZxmeSDtJTCG491HGp/H1CdH8DvDBgr4130Z8ZbTSOC/6We8c/c8PjL04rBEzfNT1vmAXatZUWVonOkiG37UZbzZFjHqYxBuf+lZFcvm3wBJZtSPkpFw0V9nKHejoiAM; 24:T1NjG6s2snKVsR3sG3BmVbJVvBkDxPY5G/xeP10xLvRd6a+ML2U+CvuaWb81MWolNV2mFyOd7ECla2mGjEP+E88wGFAznXhagN2L8dSdu6E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 7:PJMZgqZcpu2fNVT0is0mSSMI0Qr+d1nN7Wl4XyMmJ4fJ1yDVOz0fYAtPEKf8F37WrlKKif3Ifps9/F9PZvQipeKvTup1eu+ueXMSWHIKzCgXifKND7TezqhPmVbB3wu4xnArTqfXsKfoWMeQQMIUADDdf+/Z0601Kmilj3SXM6ye8NIBWFkxy0tI03LAYePPVmM7LWf3la0zxYnwVEweOD97vfzyLXH1B5zzzAKbTR8Gho5wqZhBC5oPDX7NZv3tL3TYoi3Ejbby1IFIx+J8hPpw+/m+WdRBSe58KxGYMor4o0ZmdbMCF4iGQmD6BDFzHRggPfXDdrqh6A8K2oZ6HonX1qNHDsFILRc4j0+x914bqyAYYG+d7V/gRYIpvw0VYmkpO8rJnWdht8ibsC2ivs0bJa6TrcZOmEpU3jv+AB0ztsEO73Q0NIbdZFC8qjeyJdfOTWwjjZM1RKxMZUqUlSF4yxYaP6GWtZLqztdiuJfbb7K4wiL7bOFXFY8W9L0LwrFvDPXVMCjMkVYZf1Cxqlq7NbwMLRAuXImGd5wqrCFZRtVorHer8hGBYQCG9MmCO149LW5bE1ODvURpa+f6tJuUat9ZAZQ+a2G7lVcE0ahZsycJJPTFK3H6Q1j6lq9HwgqUH00CW3b9LFUm5yj69Q3rdUs/uB+ZYPnGX41IN9mwmfSaru7LgblepHCoDr6aD/wuZUf6/aobjC+ZEb+don/MoInhWTaEI5kYU8ZhKqFmYs3emau09ASbx8AzZzDi6k+aERcgEf2yTQLme5Vw6/5R+v/XhQDA6yMYc2kUcYE= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2555; 20:jmI60f46CR9gKRKJMG3/Q1XtQ4e1Hw137qp4V6pc1hK71tItErHUsoo2Dcq/r+wzMx/pjuhimNp2Qv8DrAUafcxHWAumWo1865XuMmRwAyAeAOl/E6evyZFJsvupiD/TU/U81lg+wGAgu6wEdlhaIRfrOg9aX/ToDPiR9CXEO+E= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2017 12:45:11.1881 (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: 40.107.3.108 Subject: [Qemu-devel] [PATCH v4 1/4] qemu-img: add --shrink flag for resize 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" The flag is additional precaution against data loss. Perhaps in the future = the operation shrink without this flag will be blocked for all formats, but for= now we need to maintain compatibility with raw. Signed-off-by: Pavel Butsykin Reviewed-by: Max Reitz --- qemu-img-cmds.hx | 4 ++-- qemu-img.c | 23 +++++++++++++++++++++++ qemu-img.texi | 6 +++++- tests/qemu-iotests/102 | 4 ++-- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/qemu-img-cmds.hx b/qemu-img-cmds.hx index a39fcdba71..3b2eab9d20 100644 --- a/qemu-img-cmds.hx +++ b/qemu-img-cmds.hx @@ -76,9 +76,9 @@ STEXI ETEXI =20 DEF("resize", img_resize, - "resize [--object objectdef] [--image-opts] [-q] filename [+ | -]size") + "resize [--object objectdef] [--image-opts] [-q] [--shrink] filename [= + | -]size") STEXI -@item resize [--object @var{objectdef}] [--image-opts] [-q] @var{filename}= [+ | -]@var{size} +@item resize [--object @var{objectdef}] [--image-opts] [-q] [--shrink] @va= r{filename} [+ | -]@var{size} ETEXI =20 DEF("amend", img_amend, diff --git a/qemu-img.c b/qemu-img.c index 91ad6bebbf..6c28dc439d 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -61,6 +61,7 @@ enum { OPTION_FLUSH_INTERVAL =3D 261, OPTION_NO_DRAIN =3D 262, OPTION_TARGET_IMAGE_OPTS =3D 263, + OPTION_SHRINK =3D 264, }; =20 typedef enum OutputFormat { @@ -3458,6 +3459,7 @@ static int img_resize(int argc, char **argv) }, }; bool image_opts =3D false; + bool shrink =3D false; =20 /* Remove size from argv manually so that negative numbers are not tre= ated * as options by getopt. */ @@ -3475,6 +3477,7 @@ static int img_resize(int argc, char **argv) {"help", no_argument, 0, 'h'}, {"object", required_argument, 0, OPTION_OBJECT}, {"image-opts", no_argument, 0, OPTION_IMAGE_OPTS}, + {"shrink", no_argument, 0, OPTION_SHRINK}, {0, 0, 0, 0} }; c =3D getopt_long(argc, argv, ":f:hq", @@ -3509,6 +3512,9 @@ static int img_resize(int argc, char **argv) case OPTION_IMAGE_OPTS: image_opts =3D true; break; + case OPTION_SHRINK: + shrink =3D true; + break; } } if (optind !=3D argc - 1) { @@ -3568,6 +3574,23 @@ static int img_resize(int argc, char **argv) goto out; } =20 + if (total_size < blk_getlength(blk) && !shrink) { + warn_report("Shrinking an image will delete all data beyond the " + "shrunken image's end. Before performing such an " + "operation, make sure there is no important data there= ."); + + if (g_strcmp0(bdrv_get_format_name(blk_bs(blk)), "raw") !=3D 0) { + error_report( + "Use the --shrink option to perform a shrink operation."); + ret =3D -1; + goto out; + } else { + warn_report("Using the --shrink option will suppress this mess= age." + "Note that future versions of qemu-img may refuse = to " + "shrink images without this option."); + } + } + ret =3D blk_truncate(blk, total_size, &err); if (!ret) { qprintf(quiet, "Image resized.\n"); diff --git a/qemu-img.texi b/qemu-img.texi index 5b925ecf41..79ba802481 100644 --- a/qemu-img.texi +++ b/qemu-img.texi @@ -499,7 +499,7 @@ qemu-img rebase -b base.img diff.qcow2 At this point, @code{modified.img} can be discarded, since @code{base.img + diff.qcow2} contains the same information. =20 -@item resize @var{filename} [+ | -]@var{size} +@item resize [--shrink] @var{filename} [+ | -]@var{size} =20 Change the disk image as if it had been created with @var{size}. =20 @@ -507,6 +507,10 @@ Before using this command to shrink a disk image, you = MUST use file system and partitioning tools inside the VM to reduce allocated file systems and part= ition sizes accordingly. Failure to do so will result in data loss! =20 +When shrinking images, the @code{--shrink} option must be given. This info= rms +qemu-img that the user acknowledges all loss of data beyond the truncated +image's end. + After using this command to grow a disk image, you must use file system and partitioning tools inside the VM to actually begin using the new space on = the device. diff --git a/tests/qemu-iotests/102 b/tests/qemu-iotests/102 index 87db1bb1bf..d7ad8d9840 100755 --- a/tests/qemu-iotests/102 +++ b/tests/qemu-iotests/102 @@ -54,7 +54,7 @@ _make_test_img $IMG_SIZE $QEMU_IO -c 'write 0 64k' "$TEST_IMG" | _filter_qemu_io # Remove data cluster from image (first cluster: image header, second: ref= table, # third: refblock, fourth: L1 table, fifth: L2 table) -$QEMU_IMG resize -f raw "$TEST_IMG" $((5 * 64 * 1024)) +$QEMU_IMG resize -f raw --shrink "$TEST_IMG" $((5 * 64 * 1024)) =20 $QEMU_IO -c map "$TEST_IMG" $QEMU_IMG map "$TEST_IMG" @@ -69,7 +69,7 @@ $QEMU_IO -c 'write 0 64k' "$TEST_IMG" | _filter_qemu_io =20 qemu_comm_method=3Dmonitor _launch_qemu -drive if=3Dnone,file=3D"$TEST_IMG= ",id=3Ddrv0 =20 -$QEMU_IMG resize -f raw "$TEST_IMG" $((5 * 64 * 1024)) +$QEMU_IMG resize -f raw --shrink "$TEST_IMG" $((5 * 64 * 1024)) =20 _send_qemu_cmd $QEMU_HANDLE 'qemu-io drv0 map' 'allocated' \ | sed -e 's/^(qemu).*qemu-io drv0 map...$/(qemu) qemu-io drv0 map/' --=20 2.13.0