From nobody Tue Feb 10 06:26:29 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 1500046970287760.2421875310314; Fri, 14 Jul 2017 08:42:50 -0700 (PDT) Received: from localhost ([::1]:38611 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dW2jv-0008SH-12 for importer@patchew.org; Fri, 14 Jul 2017 11:42:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40402) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dW2fw-0004ss-I1 for qemu-devel@nongnu.org; Fri, 14 Jul 2017 11:38:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dW2fv-0004x9-6x for qemu-devel@nongnu.org; Fri, 14 Jul 2017 11:38:40 -0400 Received: from mail-eopbgr20115.outbound.protection.outlook.com ([40.107.2.115]:63125 helo=EUR02-VE1-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 1dW2fo-0004sQ-Ia; Fri, 14 Jul 2017 11:38:32 -0400 Received: from pavelb-Z68P-DS3.sw.ru (195.214.232.6) by HE1PR0802MB2556.eurprd08.prod.outlook.com (2603:10a6:3:e1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Fri, 14 Jul 2017 15:38:27 +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=V++ZVojLnuwQnK+vSoOVMKvXFE+PPJAT1AyBcIMx3Z4=; b=X1WZBrdwHSdjrZPJmSwZXB54yt90b1WBRuf6C2uiTvyhOdzg4oZOglNYlo2zkHaK9kj5MQrfh/lJUrGlYnOdsuaTU5iiYuAFUi+ZD0easMwiyBCkd2/N92JfdbkoPGlqoPH3uk12vbZi6MxFd8ObiSB7BS/8qgK/lFyg0jGyXYc= 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: Fri, 14 Jul 2017 18:37:46 +0300 Message-Id: <20170714153749.25132-2-pbutsykin@virtuozzo.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170714153749.25132-1-pbutsykin@virtuozzo.com> References: <20170714153749.25132-1-pbutsykin@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: DB6PR1001CA0027.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:4:55::13) To HE1PR0802MB2556.eurprd08.prod.outlook.com (2603:10a6:3:e1::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b7d50f3a-4018-4c19-2d0d-08d4cace601f 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:HE1PR0802MB2556; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2556; 3:LPx4y2yWbI6HvOBehKO+F7JVMEdI2ri2435Ru5rajz2YdNHl/jJLBH2EV/Tsu7ESExEHnaX9WKUrW020yf6HnUi3HcojO7cGeUG21wQrd1Uc/wfhWaGIYHtz6Sr+F9OWIkwjmwK+Rk5yFdM2BxIl6Rz4snlcvqucp7I9Up/KzW0sWlV5a827rXZMZLGN5ZhM+Doqa2yPq9YmfMuFUY0o0VJIiJuY9elQTFXX0CwPtDn4E6DV/nQYgtm3ZfK9Om4kpNaWfd6b2lITdv1HG91v3ZQNdB7mCZMtfUkP12B1sF7GXEiulqOMaU/pz4xrSXkDZWErol/d8xU7d9qXRqR5WkConVHinSh/9tWQ/9Hj0dKjz5iddPM8GazLV/6qRXsXVkt1O53ZqO3sYKBi9Y8LWuO2FSKs26nWOAfN8ZVcfRZMtP2VsNgowdbKhLnOHoakMEdWsXuvHxAPaH2snjDIq7ACVM8RZnzD3koJANt0s/s67OkoAxPFedDVgUHAjvEWDNppf/9r7KGMhFnpqJCXFGNpzrjetaPKuApiAP1liPj7ut71xthinA6BPlrnLn39YT1eBPsQlgB2SFGPKCYxzXn1satcDge1M2IqLWGjk6S0wNh2jfOCmOQcJG22ZFfsIGlYHigxFI2Z1XrBYQSNgID6tzsKVsPOH3E33pJM7vETViDConTy4mBFAQRjO4vuZi6ZSvwYgkbAyI1ZNpGozgGMrATLaEu6HwC0xgsU6T4= X-MS-TrafficTypeDiagnostic: HE1PR0802MB2556: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2556; 25:EdImpmeOZiNvRPE3xYo3hKPQX6F+Imsnj7cGxvEE/ZSK3hyLIP80EqZNUid9UqKQJGNs6J3u0UESOqc6Vy07wUD+HiF18Yhl6gZyaPB7erwluFa7QS3No3hmMD+aFAqUgNdDvmxGLvq9chqWbXfCiZNPmFXstd0Iv+qQuGnaVql8HAUzlWCjurd1PvqaeV4Yjp/h5qGNX8CiJPdcd8jtu9n+gBI7r4W0olGs3y7oKLJkImrVYtgFUV5OH7BFhfYIsG3u7I+8tYE2M3ADIr0LKpveBwRjbypzn1UL0NEcKpJCqMaYBUmeXj3RUVm0jixO06WqgmVJSRHfPPfGtbhC66O3fI8kHvqbyzDsmuyTro5bRdGIUJL1xyfKlM0lriu7GWL++L6RNJ0WwSkiegDQEuj9YtqNk7I09T/eJji8lGingPifWAMDBTn9gFbcw3ZS8dA28p9MNYGo+REdiczQrJuCIBhgxOHmvoQderSyJDXFhVCD2FzE/NV1+liHwxuUGXHoiKKmoy7DZ7oW1mrMPTmBFi1ySr4E44aa9hpQsL530W38V2MXiQXA6vi5Lx5fX0RJH2GcCCk+Sv9bcKc0C3STZ19sjR4msctptk76gb3CZtFTWABDa9/SMPAMSN0Es5jaUXNAl2It9vPp9gXlPfmwxNIU7NkhFzbxwUYJno6YiVKHJu7CtkaCtViz20bPf9+hp1MCQVo3EbqnxJu3zuZpUH/ly1PjHSStQhYNBTtKkvqsj9LUpija4Xt+5pCnLR9Wiw1cX69oxIbQHaPL1+YhHP8QMXnw+S2R/mF2W5TxydmwwiK6yInp3H4i+eaMiaXScLDWNrPkZp7JcYQUwHUhckEd7LHWmDyfDUbOLlJQ/IuIBFw0inpzi6WaRC0mvUxMT93H/zbIEvs/H6Z++4bbjnB7Uy1vSwnOiU/Z5c8= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2556; 31:ZGveyvtLPRNt6esqOayN/ausE2Ha5YuJAunlBu8AMDZ2kRyUMjOUnMt93/O7Ee6h1ZmBwa+Y8tyVtSC1Ldp9Q4/+2TYTxXbAXtvOkgqv0hsOUq87oahvxFOcnh7k3CeTRHXb9TmngOri8w+pBFRvPWqcwTZBTITX+yrf4ux+VAMwpSgR3ATP/Tq06/ExaWBqt5sbMqWBJnmVCRmGHQKz3lYnUMN/yW3n3t+zcX68nL35rMT19IF6+cIWPChFzzRfUGT/Tn33HTB1dMj48EFL0jt9ZicRyLfzPSm0H+YpOzjIyF9MQI10UZFsFi/B4aV7VMjNrT4bXGWnlWex4dR4O3AkJDC2+5TS8mX0ZE3VrgdDuM3b+sPKevlDIr3/qfgUmltpVlA4HXMgjO1ShFphTptmz4yp9ju574ft2fuTMchH4q3HUBh0OH9iNuBhj5NTvNS3kC4XlPb4LbxYU63Qvovo1i1yHFgVYcsVSfgXKuA/9ugx4PeEqTSW1D98wcBCmzWc4PkPvBYQTWV8JVTdtNuL8uhrPASOHYY8tiR4xOFJwv00BSdQrDejOf/zoE3DQK/reT686oSTtS2RBogLA3km3kiqxxShnpfRsx44j5io1gUHDzuZRMraj0tZA8SGWB6/jvOEaZm4skLNJS/fX1P11mWN8+s9pn+JAM0Rn7A= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2556; 20:QIkKKpxNXNLiggfscCHyE2DCSM2+8O8V8szRMof5f7nV28o5g+XQjx03v8QdY5bEIA8D5LvFSZ27O1FtSF/NTZRCDebswEEuaN76k226u/iaMHH+WILrMmvFJn9YHyYd/zoN4SBfQqMCm5eVkPT7i4XwdttUvaNUp2NzkvRnY2/cmSlThhKvxSFnzsU6dILVLOa/aL0HIvsKEpFqmiTWTLHYTAKuUkxhHSxcV6SQIEGI6QcZpYMF8kKrjDzLTBIDTWTa0nTr5oP/wqUsip7KcpsgCHn/90ORyMpNvtJ06R8Swd9LThlkI+1f5a4s+w3dh4/DTV44LDNQpzkIInau7rzIU8VJd/l9LwvyP/65R/1YGIJXoEOiIOsxq5kNeacJ+f0+HRwQiHB467vPdpVk/yR0Mv7S3NHtYPzgP5EPa+s= X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(148574349560750)(17755550239193); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123560025)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR0802MB2556; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR0802MB2556; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2556; 4:FLuoUQBp0w9LuGnfnPhNik4etWO+046DqxayYOhF?= =?us-ascii?Q?Zk4XY5CL2HusLcgF5nYaNKmScHyHt5GyGHYyc/zIFBQ2hDfz75Igzv9D+7od?= =?us-ascii?Q?n4oYefDpW8hxkcd1VqK36lGPiIqjlJV8Gdq0O0uXTqpc76juuWRWab1k9r0A?= =?us-ascii?Q?0OSLSCHjqGQWfQnOQyoxfFDOOwoLUIdhuNA4fpbwmKsDCD63qBvajAS2hNG8?= =?us-ascii?Q?t8kjrjtr3kA3Xk8gWMM3gSk1oCoW4aycADarMJ+mK+xCNrI3VQyanwhNujjF?= =?us-ascii?Q?Sy93tYldZ2WgUO9b6n6H/zWZDh0L9lDg9MvwmvmvnWY0gft2cjxC3BRQFRg9?= =?us-ascii?Q?+vJFFfv7uQ53G2qoW5bjv0l/DzCIrXcpqQPl+O3S9+IHfrWXOdoxUOKdnxg1?= =?us-ascii?Q?IDrRamzdvBMeIFNiNktWaoGhCi4Lw7R37kHtrYz5NRbD9A+os690s7nSsEqN?= =?us-ascii?Q?7jTntUH1AbsqKUSKRWS9wFwHDMA9cIif4yTYcEnkDGadrRMZr95YpsmBZwcs?= =?us-ascii?Q?bhvGsNEtzWfCNczzfM25X+MVxY7UezYLWwtGZU9yrdpGxXkWaar0yJ1z6hWw?= =?us-ascii?Q?5VwBoNKhlJ1lVSTuopDoBEp7OAyfm6ABbGbKJ2ZKrIKjWZLXch/dEwLj3nJG?= =?us-ascii?Q?L+cXpKqPNHO5TPgItrUsuosZUPVRYSk/no7RZRvMo5y1KweD9e97oYBLbHig?= =?us-ascii?Q?BiuXLep/AOt++XE1IBN3ygv6y+r0Vqphcpka17ZQ8bUjPmzzWYIhQlehj/sM?= =?us-ascii?Q?j0PkA9ZmhNGdDeoXqsg+t/eeIt5gglEqsl2qVG0drJJeIrLgot6JZw+zyoNX?= =?us-ascii?Q?DpclaQh0HE0Mw8yUt2mOTeB1OXbWfvgEe8O5BTzX/z3kGlxuTpSwtBmfDl77?= =?us-ascii?Q?CgfSxN37eVfo8Vv1Ee1tDdRTnA0FlPWlEa4z9kClKURBob6Cr7DMZpD5Zyhr?= =?us-ascii?Q?kkTFoEAawth8G2MGkjFfZ9OuBXZhXBtF+CP0C2dlttHpedjKorgg41z4Sn2w?= =?us-ascii?Q?ve0iO9qpptv96V1T/2HJXTX2KoEE44VQBgiwZoIUcNX5cSUb0/cUrDGVnOTv?= =?us-ascii?Q?f6ltw4Qfy5AygSDkpZDR1eUZClU0xZLMcoRRJAwWa8hE+xTrcvXLKdAEl0Em?= =?us-ascii?Q?W4t94Jva+oLBN1BAQ2qHKYGcLLlH6TyKNPFYfJA2JQCwLTKbvJZUU9zcbH1S?= =?us-ascii?Q?sibTMOj8R/LVPf8fQfIhiB/hFK/vhuaqpIWmMqHWM/LowOb8vYq0ppLOHGuY?= =?us-ascii?Q?/iNUQCd/geiRzt4ZIJbEsV8cCll51XjGSXfLdRJ8ODD6rh0apAplRmcKA3cR?= =?us-ascii?Q?4g=3D=3D?= X-Forefront-PRVS: 0368E78B5B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(7370300001)(4630300001)(6009001)(39400400002)(39410400002)(39840400002)(39450400003)(6666003)(478600001)(6486002)(5003940100001)(3846002)(38730400002)(50466002)(6506006)(110136004)(53416004)(6116002)(107886003)(33646002)(48376002)(2950100002)(6512007)(4326008)(53936002)(7350300001)(189998001)(8676002)(47776003)(66066001)(5660300001)(1076002)(50986999)(76176999)(305945005)(42186005)(7736002)(81166006)(86362001)(25786009)(50226002)(2906002)(10056002)(36756003); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0802MB2556; H:pavelb-Z68P-DS3.sw.ru; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2556; 23:4T12hPOyZBZg8xA419zl239BJKGRYYHNCQLXTRQ?= =?us-ascii?Q?kSPLbfIP5+h23HR22qkc6FpR052vn533DQzfRwOgncX0OL1D3QI6lPISLeOi?= =?us-ascii?Q?wsvd98zEm1assHdtM3+Cz1tlORX3PRVaOXA/ob27Owu4KcDcYmacL62ijlPP?= =?us-ascii?Q?XpZQdlRHmE43U/+Te68f9Q+Nwlx/YF7VqAmLbZbYOCAfF76/vzHtG/f4p/Kc?= =?us-ascii?Q?lJftthHCbbD1Z2d8eBMhBhv8A6sLL0kXPI3zyRTcVVyjlgriGeGa1zBFVf4x?= =?us-ascii?Q?fAwbUMSPc/XS4fX0z8ICQkWN6ti08cW+D9hJ9XT+nxa3ICrNYlONkrPVTwXx?= =?us-ascii?Q?6BzT9IVZPeqdjW9BnPd/fFvY5ck2cXb9/H841x+myksfqTrwPxu8jrp6NU5/?= =?us-ascii?Q?my72FpU1XJIapaaayFQl94m9vXx0xhYfb8mkjS85eUM91tzH0T3i/HYIn93a?= =?us-ascii?Q?Vx8mmdNMEB3mEtr1Ros57x7BjrKT3VEciK0dJwG9pIrbd0rlBNs++UPqHEz7?= =?us-ascii?Q?1UWVOcBeyEhPqM5G0pP7Hnaxv9tByvyJp2RXqEOI2VmWyxZuQIEeIrnTTuPB?= =?us-ascii?Q?PDbvlXxtHCroJsVxUeBtPVjCfb3xnh68L56p1b6+cPG8+y/mhZclOP7iJ52i?= =?us-ascii?Q?+eeicI3J4KB2iOv4ToQMAnPFckZFk0tEN1bWJW0d3CKxVr1MUnrIXRgQsv+F?= =?us-ascii?Q?JIF3gc2gEnycSiV8xW9JDIQ2nAoCYBZRB1rorpBLoj5Ikn5Fn9e2D34qbPpg?= =?us-ascii?Q?vDSz4B4+/4A0r4tHqznLr7QL8hBSKqpcY7O4hVM54SyAy2n2R189wwOAesZh?= =?us-ascii?Q?QyQkrj6H1l27iBX5BPLnNagAI8av3476AgXPoL2AvHkNYeU+ZI2gYkmYgPCF?= =?us-ascii?Q?iClnQG8JjlrVB5ooUYJu3S3Qe5WoKuIDk7vRUwFWRya5mf8M/o3pEBU0f54O?= =?us-ascii?Q?tFURUGYryRoTCprRkLunvlIJMEz8BKU5RGIpUS9X7WRukkJq0C//6tYBPkWB?= =?us-ascii?Q?9K328HLmszoUPPclbYchgJg8HMyxs1hI7qp4hSooWUSNd7jlGZ9mFLXhFUtS?= =?us-ascii?Q?F5aONqQK6fOMf2J1ZbfoP32j7G8MuA/gV8RigZyspb11tdn594uSOS6buTEm?= =?us-ascii?Q?8uS6rXGja948=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2556; 6:pfvuXzZzvP/BT/V/EPudXS2C+R1GnmEbdiOUGCFW?= =?us-ascii?Q?kRT0Y6/l9thUvBv4toBjgZqO2tynfvgnR/zG+ri4FLv1MP5uT8gZB7hFDfWA?= =?us-ascii?Q?HEz3Z6PPaqAqx1nm6lP2JoKFJYPDP7yJxpoeP52fsrK+jakP5QKsmW29G7Ni?= =?us-ascii?Q?n5rmmm82P6E+yLHvpI96DZ4fzC+P8EKLvWDbSdnanD92zSsLVwSPo5a377wo?= =?us-ascii?Q?KYK0PCDXW9RXZW6StTXxTkZe1ePuCKM78C5dOfgPdu9rHl+A5c4ryXQoLWqI?= =?us-ascii?Q?nmBz+QXn3/OGyLcK5gjy42R6C7lLDnXw+4MGcRhAT0mXMGIBdiPpEjVe7Xlb?= =?us-ascii?Q?y8gxHpaxM4UzdfZ867CotsDnPbwvFq0XLR/6mlG8T0oy4VZWjUXAryzaC7fc?= =?us-ascii?Q?mG/v33SVEy+Yl33oBu1Mms9rxdJVFrGKwGm6kK0G3jBQZ+yhzGNnRYrZzn5L?= =?us-ascii?Q?J4RIGyGk4+jzBNrOpD8E8fphdcJT5teEdsm7YMWiPMFDC7Q4PMiZo5dknZMB?= =?us-ascii?Q?Wc8Jt1yfglMexqZVGdNewHAjv5WupbYpVnIseUAzuKQiXWSB68bqgzpmnEIB?= =?us-ascii?Q?skV4JvwJzKFHQ6BSZ/nAwR8MPqg45gefF5x/dInBxwZ1Fq2Q+/Rr+tNzb77M?= =?us-ascii?Q?jdd9l0afpspHfa8Kk6Jjiq7dNvdBHDHRo4+FMsAXcOdo5fV0KYPG5NYVaxrZ?= =?us-ascii?Q?UZSahfKX6WO5s/rVByPwat0MjlMhOcdRV1TfQAzZjQLhlyxQhjGTqJdTk4HT?= =?us-ascii?Q?HUSMVS7suiIBB0ZLUkrUzDte3g6ggZU/uh2buWJwCyl/O3dVCkZFuivC2p1b?= =?us-ascii?Q?Msm9SudYD5k2Wl+L/lMoCrxzfS1Ndab2LTegAd/+XWQ/IzlRqUIUH3waAFRu?= =?us-ascii?Q?ETzxwv1P11dxBK+mC6nHB3FMmczWTIyDlq5JxoRuktshT7+Dzrj9B5MZ6Jgi?= =?us-ascii?Q?YI0qYwnjBFzmPABuDgeh6Ri6AH4S7DES61vOCfG5XdWRjF+d4oMrjKkwcsme?= =?us-ascii?Q?4mg=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2556; 5:MXwoRxzH0BCXDlU3DoT4RpPCIo14eUqSiO/mOGAfmFeQ5UsLR3xgE+MRL97v+D7QYk5wWXySJ2SwDPvCNSr8UH/22OH01y1rlDZZthi4i2iVrey9oFK2QnK8bmZ6dY7w7rjYGK7lx2B9JeglDwTCzgTVUmMBXFMGPMFyyXAx1q+w9YqznENmMTiL6ruC4JYJH7f7clnmq4XI82y/Aiqbvkuh47VjTkokIpYmGWH6fyxoQfuQbXxtN2ovqYK4hJ2DIsJ4PJd4675Qdm8dsP0zkJv20mf962vN/rD4bNPTFDdspYacSdER8hFVbDwZUzghUw3kgqrVDrwp8jE1Y7BIQWniejhn+MDjM7THIwYHYMtDvpPRPbTwI/6k1j4HCOaY6kAeSI95w6CgeNhBeKGMC9GzZ+WkZtASj88hBwt+9/AF44Ag3B/ZV+ToG1nXIxuypACiP8SsLsw4sLHa1EvtwyLQTLLO7VI4nCZSP+H9EZWg2jo11FQqWBEKsO3mwpoo; 24:ChGt3uoGtTaho+oLC8GxU5lxD0kUliJ/I8U+7//jbx6IeM21SrVk0CQ9peBDWl+Ro2kEikuxlk9YQK+NdJpfgDUsvuur6+WnqrwHrICiRng= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2556; 7:1S+q8V73BRxdt1suixS/9yTTKxx6fKHbVMqDTNyEnBIE7vtcKpGIp3uSZfJxo8iPfbaVNpMNOlivCk+QO8dDrLLUFbal1LiIlqhDf5wXeuSOW/zDZEfJNbcpmJWmKAChM/OfznRbu887drARrt9Wcd9TsjHl91xnjB5BQMGOUu43OPDGsl+tf1MVP4/I0sgIB87kF02rrHc9HrADPgWll9edJZbN2izW752fHyFHncVoLQnpLlJVVBWTjKCi+jsT6ENneF3Ah4fwItapkUy9Pafzy59OFtw3icJLcg/5CQb0saulMJc5e/7uC8dqXimpopIrMMfAKX9yh2OodplYe5/zh4iXdTRQGMi55FT/fz/gkvjJv0jaUxVcgVq0Mt3itabh7BQwlEaJSge8qBN1o/2LGWLL/9SvC1x0ltrl84JRv11Sb03jhweak4L6KZrFBUM/lWo7o9FTAJYkIRcg6k6icyku4L1dJ1icNQaPukmL2IwoQkiZXM0UB8zqpkVCtL/jVavc9M/CTQlO3eUgTzdyo1qa/MErbnOIUNT47vaJiw5g6VlglRsP2fLFt8GRtV2xdD3dzlR81b6FnNgEbIPx8SKSQw5xD4glrQtouVDDlw6dqOd2+owtsenciQOMX7oPtErbmUPuzpwwieH+ZMpdGVNsww82DV3aQciHq2fPmI06lmcLtLeT67ggC+Th7fguTmO4b1W9wml4JBvA0CNAxnvg+h5dvF1sZ+2mjq5l0aQKETjABf7o5KsrCKrfILz7koxIeg8h4SPM+bGcZE8wHFu3gVpAH4xi56TKRR4= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2556; 20:3gX96Drnd7lFb73dGauSaht4qdYiOi+a9YhpPkpnfAVg+lRFsszVERK5bYd59mtoznaMWItRSyxLdt2/lGaAPziZ44JzToyRlAcrFMtPniibqNVH8qjYHvw/W7djiWKMuIrLOLBsty77fF1DvIPQTX0jlF/YpHU6xWzvvXGixM8= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2017 15:38:27.9552 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2556 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.2.115 Subject: [Qemu-devel] [PATCH v6 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 ac5946bc4f..e36957a2ca 100644 --- a/qemu-img-cmds.hx +++ b/qemu-img-cmds.hx @@ -82,9 +82,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 28022145d5..b4dc4bb5c4 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -64,6 +64,7 @@ enum { OPTION_TARGET_IMAGE_OPTS =3D 263, OPTION_SIZE =3D 264, OPTION_PREALLOCATION =3D 265, + OPTION_SHRINK =3D 266, }; =20 typedef enum OutputFormat { @@ -3430,6 +3431,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. */ @@ -3448,6 +3450,7 @@ static int img_resize(int argc, char **argv) {"object", required_argument, 0, OPTION_OBJECT}, {"image-opts", no_argument, 0, OPTION_IMAGE_OPTS}, {"preallocation", required_argument, 0, OPTION_PREALLOCATION}, + {"shrink", no_argument, 0, OPTION_SHRINK}, {0, 0, 0, 0} }; c =3D getopt_long(argc, argv, ":f:hq", @@ -3491,6 +3494,9 @@ static int img_resize(int argc, char **argv) return 1; } break; + case OPTION_SHRINK: + shrink =3D true; + break; } } if (optind !=3D argc - 1) { @@ -3564,6 +3570,23 @@ static int img_resize(int argc, char **argv) goto out; } =20 + if (total_size < current_size && !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, prealloc, &err); if (!ret) { qprintf(quiet, "Image resized.\n"); diff --git a/qemu-img.texi b/qemu-img.texi index f11f6036ad..9a930f5e6d 100644 --- a/qemu-img.texi +++ b/qemu-img.texi @@ -529,7 +529,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 [--preallocation=3D@var{prealloc}] @var{filename} [+ | -]@var= {size} +@item resize [--shrink] [--preallocation=3D@var{prealloc}] @var{filename} = [+ | -]@var{size} =20 Change the disk image as if it had been created with @var{size}. =20 @@ -537,6 +537,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