{"id":814905,"url":"http://patchwork.ozlabs.org/api/patches/814905/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170918124230.8152-2-pbutsykin@virtuozzo.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","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-2-pbutsykin@virtuozzo.com>","list_archive_url":null,"date":"2017-09-18T12:42:27","name":"[v8,1/4] qemu-img: add --shrink flag for resize","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"84da9c0db32d2f6b9afd4b3bad6db4486c38e95b","submitter":{"id":67271,"url":"http://patchwork.ozlabs.org/api/people/67271/?format=json","name":"Pavel Butsykin","email":"pbutsykin@virtuozzo.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170918124230.8152-2-pbutsykin@virtuozzo.com/mbox/","series":[{"id":3635,"url":"http://patchwork.ozlabs.org/api/series/3635/?format=json","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/814905/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/814905/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=\"Jsbgrqq3\"; 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 3xwm2z4grRz9s78\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 18 Sep 2017 22:46:19 +1000 (AEST)","from localhost ([::1]:36405 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 1dtvRJ-0005jX-Pi\n\tfor incoming@patchwork.ozlabs.org; Mon, 18 Sep 2017 08:46:17 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:33482)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <pbutsykin@virtuozzo.com>) id 1dtvOI-0003UV-7X\n\tfor qemu-devel@nongnu.org; Mon, 18 Sep 2017 08:43:16 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <pbutsykin@virtuozzo.com>) id 1dtvOD-0003Tx-5b\n\tfor qemu-devel@nongnu.org; Mon, 18 Sep 2017 08:43:10 -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 1dtvNz-0003Gr-VJ; 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:47 +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=FWGUUX/4DpwZw9u+hxmAJ/FaWjFDKdEL878GQWuOznY=;\n\tb=Jsbgrqq32ZdJuxJOwPvNbDobYWPD2+I9ReE53GcbwEVMhRbbL+PflJO1wzvN8E4WpAE94KPcMAGlrc/59MH54xfs9fJcwYakECwRkKsAQ3R0I9hkEXUAi4URvD/4qbKlThy2UmLpDlQMKcNq2HN6IS2xge/pFeiA9kBoq2Q0sdc=","From":"Pavel Butsykin <pbutsykin@virtuozzo.com>","To":"qemu-block@nongnu.org,\n\tqemu-devel@nongnu.org","Date":"Mon, 18 Sep 2017 15:42:27 +0300","Message-Id":"<20170918124230.8152-2-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":"65e9f52c-e9cd-40fd-e273-08d4fe92c490","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:EoJjZSwDr5NpRtkHvYeWx24DwZ/yynSCHEhpn0MV3YR/jPhhjXASATkCvXwGiOzHgW8BPlJj3nOw40eTUBa3y3/FBIgf0e0R8yQsbCrNLtalUJFcTo7bN4G9XpE2NSz2JdTHsv+rd+ast83R1L6FdQigqWQgGM4tfpoDUvsPVNRcu9ZvTs3KWVtrGb78PTKLJFoxoIDitgwvwwAWoMjWmKcOvq2m0pKfXbj/IqfEi0zgSI4eJ0SzK8XqPzMny7T9;\n\t25:+WkpghTk0UPaNSlsoAOVccZyjW3ANcBPRuQOrRafQb+d1AggoScvrmS+Wwp1EPX7J/8UdHUsfIs8Ext4+lrtkC19nqxYuYqrbOOTNTBIOEhaVoHzD+H0AMcMk500QLa+BBmhb+VWN+gLUf7qmX1BV8ZIIJANSQglvZSkf8zU5wb4LZVEAESnicoWeJRmy4P31FTaCyr3wX29rVpwI14iPnhvcni0DH52s9ndYD+lKo2K74vxK18B3wu1Z41BRK2k+/9bx/E5MouYjm8gmJ1dxdVOUFNy8D/fnxcVRcemNkET9RXdolhShoi99vs6TB6B/clfviWcv0TjwHoivw0jAg==;\n\t31:ev0+oLzqwqCrmEEZkcFTbKygfOwR5CbU1EliBpg1RlhyNU80JxOtbEqnmZhE5zo4Jhp+VCTAOwJ8XY6HDWmSGRK4dI6eLqwewbFraggJjPy7y3A+dGKQ+x1wqOziRG6AIOcH1TSt9e/16axYmME/FwHw7NLIHIdfFLPMTM9CwPuAYgTqA+/QcgcLywRbh0xUelWmwtvmC3I2HGqfQTrhJBZTeGv3mnO6wGUvfmxiPiQ=","1; DB6PR0802MB2549;\n\t20:Q5zPb/fWlALc82YKd3OiLARpi9QrIj15z1Dk9Woravn1SQj3kpFoXUtAtyan3p0LoZjGul/ThLQP1eJRNq/hVXDbOp0NRTxQpLMS+D1KGCL5D2nOjhbZm8CvRHDeof5rP9Ydf51mk4W0/XI91k6uqVj0RKQTg0BQj/OFybUt7lnj0bkmrFNRSOXfLpMDA4j6vEgr/u/GiCruWiwHzHVZfd/xaDmIXPgL+kgYqXSHVmr/Uol1oKde4cqv87i/2suigR89rA58Dyq0Jv3tyujbJSQCS3P22KPlZcFCw0ltqpxNd8y6cTAfMllQAUwxCsf+8iBFH5fpZyKYIoG2B/I6WaCQwRs6edtzn2Pwg9fnB566C4Fnj4TItLY++k2mhAV5lpV1pLbvO2YwPp2dAB7O4SeyYJHmAYf71/5ommTXDdw=;\n\t4:yyhGLpdZrEztbv+9Gut4IqHArw8Yexye+dTo88tXZmqmGfdJn2/UQ2+4wVKoUBxvLRY1MgnV3rITu1R513X2QFu4oTSyIrOylDTa3ngukk2k/SD1WdlvBb9/mHpDkIvK05wriv3u4qiTRHZYg5dnABp3QKYNEqw/DO/xMdGS/iFvgfS83s9Esfu3LQSmZfIZL8bIMjiLX4rmTT79XShFYtCf1dEQZwIsPNsLpl8b3iG0KyRDKXmqYdtA5zGHp8sYUTwGNpnJ+WTHNAl9y2bLoFioo4HEkcYAXrXUZG+eVcU=","=?us-ascii?Q?1; DB6PR0802MB2549;\n\t23:tfARpZ6AewP8WJOoYFn7362yNnbz9N2PhA2MQtz?=\n\tRNerYJnNDU+pLewlPv3i0ZPnFYSov+b89YOsPUebVEcyLMNZUz+bWIRQbxKBNHAsnq5V7H1T5s8KiSFOK06ZfSNpz3HwGx3cewdu2P29Tv9iOM42FfcP67LZT7EaVNcOc1/lH8h1Ko9cd8dN208xAkHwTWfV8MbdooGAYcY8B7G5haMRn6cOuFVNVViP6iJ1Im9q7yS2hAutlTwOFsQC408xvdYaNiTeLY8jTpw6p7eyaTxyjOQR6SXV/T6Xm5mUufj3z2wh6xzUL6mp5ZENr+K75moCjSe959+95bT3QVLQCddgxeiZunz+0TwrOpOqxqLPaKyU+AQsfBnpoU1bGzBsHw2/GGZrQJIrdk8CHRqcvhGGQAIjsffHSX2xj7ZMcRw1c4o+MlIJv4tkSnmtCwgH8QQcMS6FqMkg7qxrsHmL4/yIyfPZuOvbMliHFpOpwgJzknuabd8s9l0rmD93HRNCOswfWRIOoAOFNmXSd0OuASkUezwIzbepmGu85CMgH1BZDF6sXGHsOE2QSDTtzA+0m5CbYvUM0rAm0MtuptSSKYz00c5zJNOlSYy64XDJWyD+SNujNqEd/OkJZD0VRY/kHpOKd9jHdJ2nzjMUIDHQpGE8x2dJYmjXsYehQJGyag/xpMeWG1yM/xkeCKz1rWdtqaKmMirTZdjVpq11AQjLhyPTiWQA395oIl7m4zg8TeSDz2gKxkUKR+GkfGqItyYIWiIRiocJadL7L3KPjSfv0DHdXfgbBBFpZifS63YJ5H6q/9Ft6af9BhpyIsDNSnWEN1LZ5TkJEonUcLJJpsazCL0ABb+uVx3bzPKLVDuvEy8qMPZ2t1oHQ0ToTpFfeYppfEAFZUBAlp8RIijcUi9uwWTTYq6e2v3S8qNo7oVJy/4iU77OYt6rvRGimynthIwCrGs9DFSejhvLtmVNKVBwTYhQVeP9n4hSSsqquB04pb7wDnfAXV1m9ALFwy1vf2p8Q0brgnPsXakMMd2QVIwwuGQBSHWzynvvYcBjth0QldVw+yRnuKWU210B+aTspjhepXYAq7pY0cBvjsJGyZ605ZG2RGph42l7v2ksKSbtRiWJTa4YGkP3Se9R4vGokKy8jLFvZ18Z+amk06rtWhr7VZVAnfrKWQcwlj86sNzI5p8qabjr2KK/vAPq5ZJxIMzm+nOZWHZ+7aW6zpjs5fjnntUegqoi1lgsEIyVFHfUR6cI=","1; DB6PR0802MB2549;\n\t6:upyYm1s9IqzUBVDW9BuvbYOjOwvzoLA4tIGX8Jab+z3WdG65r4hpHZWXED76+/cp9u/pO+GJHDE7iZkRZQRaXLVNbKVa4QCIIO/7g3GtEdzXVjnPAWHvPaMPip8QPZvV9SFhF2YwAUWQXZkkqi71Fq8J5MzQ946OMq12UaWkkhafI+9XwjSe4TZDpO0kUOKd+/m4tmoeao/mX601mEI8y7hkwk8mZXVOUMTCXdITTpbgBwERKJSvwu7nPJwN9Fr3KsMOrCQ9jggsS4Xdi3l9Zzxx3jVyPvh/mR6hQLNtyY2cEZbfys6VEPm+0WBbvBUnRgo0GoSEtRWbEUzn6/T+cQ==;\n\t5:GkfIJJeKZIBb2sHOKMOk5chL/DMMasj9reYL6oTCpC1dSBbgzR0oLJIiNufT14C6YrhxL8+P8cxKtR9BA1Uen0p49RUNUm5SXM6rrOg9JpHWD7b0TCJ6RhQL404aNIiGigVbSZuJydUX5YFAuV9y9w==;\n\t24:N4wZD62jKJCBhbTIqoYVePHFQMEJpl4M+hCRBfbILvryuDkSSMdHOYO3JTdhnsk2I2BLLTsi0RwSf5UBhixjaHar2siQv0zmIOl4FC+F3G4=;\n\t7:WZzWT325J3bDHEdmJ0v5aaLLKN7ae80K4A+ae8OrjMt78R1Kq4NXGnVIIjesVTV0KUSq3ACIq9swBeDh2SGhqPHvJJ+JweYzIfRQf55NMO3qQSkwBi0NW8nrTJ/jzqphvSuZcG4TzmmNe0PNfc3CkrQeuOmlUTeGnbp5mNsD9757fS9d4BGfVEV1wAlFCAVgGS5b4DDvwVitzZojvF/mbIPJJICY4l1q81ZUUlv9QIU=","1; DB6PR0802MB2549;\n\t20:RxGsr2KkQpmfTYwZha9WOy2w3Z3eQYqA9iNj9fcqdqW1DVOk3NGVZCbFX/RxjYPVoWbOWNYsUlvFC5PNP/MOb+rcfXlMQ9v6CiX+6UNkKD7b3WNLmMuiFxwEE/uHyV8BgjDPDbzuvTwqi3QLbqAwmFaQVzgmAIwhxwndci4FbGc="],"X-MS-TrafficTypeDiagnostic":"DB6PR0802MB2549:","X-Exchange-Antispam-Report-Test":"UriScan:(17755550239193);","X-Microsoft-Antispam-PRVS":"<DB6PR0802MB2549D7844F00E14E555E118FAC630@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)(16586007)(7350300001)(97736004)(16526017)(10056002)(106356001)(316002)(5660300001)(66066001)(69596002)(189998001);\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:47.4936\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 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":"<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":"The flag is additional precaution against data loss. Perhaps in the future the\noperation shrink without this flag will be blocked for all formats, but for now\nwe need to maintain compatibility with raw.\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 qemu-img-cmds.hx       |  4 ++--\n qemu-img.c             | 23 +++++++++++++++++++++++\n qemu-img.texi          |  6 +++++-\n tests/qemu-iotests/102 |  4 ++--\n tests/qemu-iotests/106 |  2 +-\n 5 files changed, 33 insertions(+), 6 deletions(-)","diff":"diff --git a/qemu-img-cmds.hx b/qemu-img-cmds.hx\nindex b47d409665..2fe31893cf 100644\n--- a/qemu-img-cmds.hx\n+++ b/qemu-img-cmds.hx\n@@ -89,9 +89,9 @@ STEXI\n ETEXI\n \n DEF(\"resize\", img_resize,\n-    \"resize [--object objectdef] [--image-opts] [-q] filename [+ | -]size\")\n+    \"resize [--object objectdef] [--image-opts] [-q] [--shrink] filename [+ | -]size\")\n STEXI\n-@item resize [--object @var{objectdef}] [--image-opts] [-q] @var{filename} [+ | -]@var{size}\n+@item resize [--object @var{objectdef}] [--image-opts] [-q] [--shrink] @var{filename} [+ | -]@var{size}\n ETEXI\n \n STEXI\ndiff --git a/qemu-img.c b/qemu-img.c\nindex 56ef49e214..b7b2386cbd 100644\n--- a/qemu-img.c\n+++ b/qemu-img.c\n@@ -65,6 +65,7 @@ enum {\n     OPTION_TARGET_IMAGE_OPTS = 263,\n     OPTION_SIZE = 264,\n     OPTION_PREALLOCATION = 265,\n+    OPTION_SHRINK = 266,\n };\n \n typedef enum OutputFormat {\n@@ -3437,6 +3438,7 @@ static int img_resize(int argc, char **argv)\n         },\n     };\n     bool image_opts = false;\n+    bool shrink = false;\n \n     /* Remove size from argv manually so that negative numbers are not treated\n      * as options by getopt. */\n@@ -3455,6 +3457,7 @@ static int img_resize(int argc, char **argv)\n             {\"object\", required_argument, 0, OPTION_OBJECT},\n             {\"image-opts\", no_argument, 0, OPTION_IMAGE_OPTS},\n             {\"preallocation\", required_argument, 0, OPTION_PREALLOCATION},\n+            {\"shrink\", no_argument, 0, OPTION_SHRINK},\n             {0, 0, 0, 0}\n         };\n         c = getopt_long(argc, argv, \":f:hq\",\n@@ -3498,6 +3501,9 @@ static int img_resize(int argc, char **argv)\n                 return 1;\n             }\n             break;\n+        case OPTION_SHRINK:\n+            shrink = true;\n+            break;\n         }\n     }\n     if (optind != argc - 1) {\n@@ -3571,6 +3577,23 @@ static int img_resize(int argc, char **argv)\n         goto out;\n     }\n \n+    if (total_size < current_size && !shrink) {\n+        warn_report(\"Shrinking an image will delete all data beyond the \"\n+                    \"shrunken image's end. Before performing such an \"\n+                    \"operation, make sure there is no important data there.\");\n+\n+        if (g_strcmp0(bdrv_get_format_name(blk_bs(blk)), \"raw\") != 0) {\n+            error_report(\n+              \"Use the --shrink option to perform a shrink operation.\");\n+            ret = -1;\n+            goto out;\n+        } else {\n+            warn_report(\"Using the --shrink option will suppress this message.\"\n+                        \"Note that future versions of qemu-img may refuse to \"\n+                        \"shrink images without this option.\");\n+        }\n+    }\n+\n     ret = blk_truncate(blk, total_size, prealloc, &err);\n     if (!ret) {\n         qprintf(quiet, \"Image resized.\\n\");\ndiff --git a/qemu-img.texi b/qemu-img.texi\nindex 72dabd6b3e..ea5d04b873 100644\n--- a/qemu-img.texi\n+++ b/qemu-img.texi\n@@ -536,7 +536,7 @@ qemu-img rebase -b base.img diff.qcow2\n At this point, @code{modified.img} can be discarded, since\n @code{base.img + diff.qcow2} contains the same information.\n \n-@item resize [--preallocation=@var{prealloc}] @var{filename} [+ | -]@var{size}\n+@item resize [--shrink] [--preallocation=@var{prealloc}] @var{filename} [+ | -]@var{size}\n \n Change the disk image as if it had been created with @var{size}.\n \n@@ -544,6 +544,10 @@ Before using this command to shrink a disk image, you MUST use file system and\n partitioning tools inside the VM to reduce allocated file systems and partition\n sizes accordingly.  Failure to do so will result in data loss!\n \n+When shrinking images, the @code{--shrink} option must be given. This informs\n+qemu-img that the user acknowledges all loss of data beyond the truncated\n+image's end.\n+\n After using this command to grow a disk image, you must use file system and\n partitioning tools inside the VM to actually begin using the new space on the\n device.\ndiff --git a/tests/qemu-iotests/102 b/tests/qemu-iotests/102\nindex 87db1bb1bf..d7ad8d9840 100755\n--- a/tests/qemu-iotests/102\n+++ b/tests/qemu-iotests/102\n@@ -54,7 +54,7 @@ _make_test_img $IMG_SIZE\n $QEMU_IO -c 'write 0 64k' \"$TEST_IMG\" | _filter_qemu_io\n # Remove data cluster from image (first cluster: image header, second: reftable,\n # third: refblock, fourth: L1 table, fifth: L2 table)\n-$QEMU_IMG resize -f raw \"$TEST_IMG\" $((5 * 64 * 1024))\n+$QEMU_IMG resize -f raw --shrink \"$TEST_IMG\" $((5 * 64 * 1024))\n \n $QEMU_IO -c map \"$TEST_IMG\"\n $QEMU_IMG map \"$TEST_IMG\"\n@@ -69,7 +69,7 @@ $QEMU_IO -c 'write 0 64k' \"$TEST_IMG\" | _filter_qemu_io\n \n qemu_comm_method=monitor _launch_qemu -drive if=none,file=\"$TEST_IMG\",id=drv0\n \n-$QEMU_IMG resize -f raw \"$TEST_IMG\" $((5 * 64 * 1024))\n+$QEMU_IMG resize -f raw --shrink \"$TEST_IMG\" $((5 * 64 * 1024))\n \n _send_qemu_cmd $QEMU_HANDLE 'qemu-io drv0 map' 'allocated' \\\n     | sed -e 's/^(qemu).*qemu-io drv0 map...$/(qemu) qemu-io drv0 map/'\ndiff --git a/tests/qemu-iotests/106 b/tests/qemu-iotests/106\nindex 32649578fb..bfe71f4e60 100755\n--- a/tests/qemu-iotests/106\n+++ b/tests/qemu-iotests/106\n@@ -83,7 +83,7 @@ echo '=== Testing image shrinking ==='\n for growth_mode in falloc full off; do\n     echo\n     echo \"--- growth_mode=$growth_mode ---\"\n-    $QEMU_IMG resize -f \"$IMGFMT\" --preallocation=$growth_mode \"$TEST_IMG\" -${GROWTH_SIZE}K\n+    $QEMU_IMG resize -f \"$IMGFMT\" --shrink --preallocation=$growth_mode \"$TEST_IMG\" -${GROWTH_SIZE}K\n done\n \n # success, all done\n","prefixes":["v8","1/4"]}