From nobody Sat Oct 25 08:49:10 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520850156166918.6006339532898; Mon, 12 Mar 2018 03:22:36 -0700 (PDT) Received: from localhost ([::1]:57515 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKbD-0006ia-7R for importer@patchew.org; Mon, 12 Mar 2018 06:22:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33553) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKWG-0002iu-0a for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evKWB-0006ZY-LR for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:27 -0400 Received: from mail-eopbgr10121.outbound.protection.outlook.com ([40.107.1.121]:6708 helo=EUR02-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 1evKWB-0006Rl-BN; Mon, 12 Mar 2018 06:17:23 -0400 Received: from xantnef-ws.sw.ru (195.214.232.6) by DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.14; Mon, 12 Mar 2018 10:17:20 +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=evNB/IdSU8+uYV0mok0I/J8AwJ371aEgDbIdgNTwYdc=; b=EIc4ru8bzS3jFCVXYkRN6B9LES2H1Fr22fJwzBIRGiik8CAWjkAOUw8VfsDfktT2gaVwMXrLrKZFLe8JPqht2LDXKguNCNH91wewFnfAZ/09pQ5EGcv6mbIXXYniw18i/7uIkSvkoPCDfQf+TAo0yAypko2xe9mZA+nRM6+MGKQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2018 13:16:50 +0300 Message-Id: <1520849818-6915-2-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR06CA0148.eurprd06.prod.outlook.com (2603:10a6:7:16::35) To DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 45b24dc6-4342-49a3-a42f-08d5880270f3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1991; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 3:EwtLWL9HBXTEe2QA6gJzCGaPhCylZSAlL09VsSXw1mL5yaYMUSiZeG/3ZaFwOsiEZFVeC6asVKsHobiaiky1w+z3QXreMTqFCjDXKUojqHngpUwyrDeXPlVqATKVg1zrnCZkqX+hNP+nzgz8dMhxuXv0/5Ouh4V+vfMYtGvlCM0N9Ww4jTqdTdWTWAi6YFQrf9d8AeVJrLmzCrKOuc7yCplxLPsxeJFrm0Mux/VvMYezo4Ob/LKTVK6DJGUPBk4/; 25:8Hp8hANssWiSSc6riQGS5+QhUA2pm7v1wMU/zE3MUlfGSnce1Ns6sauiE8d7QUIoT/CIr03acN9qAGcqvF5j51YrIbw9w6l7T5kLG12zAtBLubfepqmJjad0S8oidFJekWThjI33+5VC24QlHenJzuNP6lg/6eJXooo/K1qkq1ag9pESvAY5itCylu40L0/ywYjNHWSQXiT78oqNYTBZZGcZkMBt3fEZfnwjbfEsOVnsL67Y5eZu8Hmnzw0bi9y2a+9PmtPqX/Wg4qY1RMI61K95lu3rn0hVSjhq8kTM1vxNlXIeJ7HyQLaRjeZoSNhB+PYPQKEwK9cmIsAFIBTt3g==; 31:wKpp7h3HWJxphN2lPSUhrJw4TkGtDkkF/AhyCow13Uo4KHT7JVr1/KA2rUZmbUKMPHzKvZ7WZpApwZNyeQ2/ehKna+778lU0l5syANJ60dnfUL2w57ltwRQHqxfvRw573oqNILu0etufUNKrLjLcnx0p8wC3ZJNc53/9OMbAZ2elpS2pBjlJuVr8wsR3msYLajsNU94BSA1nsVY4UBuQ92vtNA3Dm29PY4yEwSi7QUk= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1991: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:H9zuKxhfhuTpGroEeXbM+bPINpqVRKwLbZRod5RB2YqEyG7BJ2tKTDRuvEkUpG/vtOhx13PEcmlIdG6e9k2IoJi5Gh3JbN1dk5b4jeDo+P8bgXKBMeKT2+ZmapJGmkVB+ieWWktKFbqtvEIthFZeU5QrYeE431/yUN81Strm1zYBPkm2NsDYA4ykCsOag+2cNgIvt3C4XswM9GOqxtC1JXg15kg9ndDwjmw6SkuoVKw6EvT9sMVp/O1MbBDQttPf3MNBW2XqA2pTwbH7i90wkv8tEG7qZk8XgYeegyGV2TZA0HjHNyuJ7ccLbI8parbZOStT29CDqslieORAbE2ZnQsTnQitISIfBLCC+zw3dHLCcS88XkWlIhhWd7OMzLHgh66LHuoMUcaq6A5DA1vOGmk/LEmiNcibakoCuBYlF5Qng45GFSbi+FQbxkxrwoMBkJMp/hSNU26/LooVoaqoGxYZBZ1ggnMN7BxHy++8Spbvyov9PFbxPjUZ/EjkIvyB; 4:hIPUklOYsG2829Q2JSUVIB1x2HEoOZYEyCrLeT/Vr1m4/Qstg7K3hTn5ONNg/5LXirJvrvnXIPe0ctjJQ7o1v8Mra9AG4SAiHfV97SNrYiqohqGiORpGpgev4De3WAdDQn8UabbxyXG9EPBMRs28qbr5i5ToyPga5jplDCwjEIRyPBOKbHa0yDyGeGKiIpdgCovmfFrkcXQWeei/R+WLeBU7TTdlxWCm8WWS0PcNmaVpu3wcTLuIOJMAc2B3IE+LXQhfI19lS79qPpDcj/auYA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB6PR0801MB1991; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1991; X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39840400004)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(47776003)(106356001)(4326008)(81166006)(16586007)(107886003)(8676002)(69596002)(6116002)(68736007)(3846002)(105586002)(50226002)(386003)(6506007)(81156014)(8936002)(55236004)(2906002)(36756003)(478600001)(2351001)(2361001)(25786009)(316002)(6486002)(53416004)(76176011)(97736004)(52116002)(51416003)(66066001)(48376002)(50466002)(6916009)(6666003)(6512007)(2950100002)(5660300001)(26005)(86362001)(53936002)(16526019)(7736002)(186003)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1991; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR0801MB1991; 23:c/kixztzb6C4T1yh3/6PDVMBkHzB9PGSjMSYN9m?= =?us-ascii?Q?EqsAVd0h6AoG+2+X5wG7gj9pdCl0aK/P9lSb/Ba1fnWzCl4GtX/8fQkfcEs4?= =?us-ascii?Q?3wVN1M+SN3r7Yc2d23D5xIuyIaIt+VgrH13mtllDAHk32m9hu8aohhHoJ+wl?= =?us-ascii?Q?OuK41LrUT+yi8JYRJxJacRoQgxeKXYzpwutB2pHWzIGR++tp8tIi5jBq3lW4?= =?us-ascii?Q?WbmU/T7ug8sGd1lweK0HP/5GH8Pd2Z+5Y5FiQt7ECQFmuz31mWvXjyXd5Ucl?= =?us-ascii?Q?o7FAmJtlK/2GX7nM9ghDlZL9rhw7nl9WCZ47faUiSX8svTkpt1yfyw2cMLz3?= =?us-ascii?Q?Fl85M+6D0Uijh1GCMmrf0ZldZsIvSBh8zFnhA10LXLDZ3L2peIwYn+mbgpPw?= =?us-ascii?Q?e6CiH+a6Avlr08/xbpUQSW/R9momPs2CGKBHBFEZLxM5kLoGg2TYuITH0iMD?= =?us-ascii?Q?C3yHp/amfb7LMsQ9hUxVK2mvxpfInr8SNEAhRUzmNjuj3vN4EW/ZJjNxWfuJ?= =?us-ascii?Q?Th+zMwZY4Z/dgCZJVjvZZ2q4fcpfAJToG9kjisiKtbzVcE8V0VFkfQP10FWI?= =?us-ascii?Q?H8Mpqr0y2cr8FY5wJeFS3mlNgO+NfSAJg2hybwQkhILXPus0KwuJfXNjDBJV?= =?us-ascii?Q?CvQEQvDZgnGWyYaPjrYeZzyg0I/+OP5dIEC37biQACzVOrgnKcOIRZJ2CkMK?= =?us-ascii?Q?ZyK1ytmvhfRpWAJtmhRFtu36PM79j3uK4C35kr4K4TuLwzoEvkgb9ugAxJeS?= =?us-ascii?Q?10e9Cu8dO/H4/Y6DrRD92NsY7dqoPAksPJavK6HDJqNKywrSLp10MWRHL2iI?= =?us-ascii?Q?iB0UMaedUdzUINKjCfanxol7wq8fW8lpjYqrCYXpJs1KKAZAdZUwrnnv9D+M?= =?us-ascii?Q?bw3zeRrYdZ5Pjk1TitnRZv2qIdQcdCDf/PGIzOstRAxN1I5FAUhXl0yNiMWS?= =?us-ascii?Q?aqrh0DzvtsvyYWHR9i7huKozcm/er092JFw7oCY8mx+9SLbIbkAlgTdVhLdu?= =?us-ascii?Q?gmxI6FnT1njkNMJhLDLrd/g8YAru8sCzq3hlb6+GQutq1h8Qyg1FjMYSyHB0?= =?us-ascii?Q?W3zcXMFbdeiLpnM55gGr0pZS5QB9EnnIKvnvklZxkeQi1hr2meWBRTNJLrtM?= =?us-ascii?Q?n+7Il4Y8whB6OjSjr5wIbyW8SKVxZ9d93KS4iVywXaJ0zRNqL0ks7jwecXvV?= =?us-ascii?Q?NyPt6w4pQr9gBga6x27lPypHcUkeg/k6QZ/4ao1RZtmWZYRfvEQtnCGBpCw?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Antispam-Message-Info: f1+kgK9bFXov4d3PWsHggZUF4RdBFqbYDDWvln3cgKNUosXbHhKpM4uWnnzyRSaPqt40FbKpXcIkq4K1TMNnqhdkMezmdZEB3YzzzijoBCyUl8qK3265eCyWb/lYB9h29Tj/TpbSEWX7kjGTGZmTds3Q6U45o+fLDeQu1jX9VB6QVT0D5yFhavBwy+Uwdu0Y X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 6:6fCdq4/MS/NHdP6Ox2GlU6WE0IrIVkPowKaGZG8Ze+8nC47woKnJV9db97E107ezvSBD4KWUtIof4QJe29LmSKu6M0WVSKsB5eCR0wQlNaPDU3i3JNBMtrPwsNDLMdbpTJOOvSGiv4gUfRvItGoO7LBS2GXUkIavozFcyqHehgSw3XPKOdbxReVxLLS/ptyxXgz7GO9zJVmuh5bLNvB7x4Filb5njh5rDkkd5Uj5KqaK9o4KJqjRvv9GuFiR2uRtM30MnU28I+lJbnJn5TddMYFUZ92hbkTfOJ1Uc4WqtSsPEjVO/xk+qytZTUcjhoPnTm/hUWeg6nicx3kztPPkeFgJfqoeQehwnfJdkumx4xg=; 5:UWWR+s1A5bokJTrKBA28ttPZEuoKGO/SowOl2rUHL4q2mbdunnKpe0LoxnmxDcDZwuUOKeRqdkwylpHnq6ERa33OpmE2pIPH+yfTq8X6LwUOBH/KSM0e8rZIIBEpUnE1Hq3v+3MuYWrsJQ4JWjcr8G/l8d62uMFo5dWYGnhJXTI=; 24:2RHMowkR+2O2GwSDbT55stngTF47y2UXnlI24/DdiCazN3iY0IzPeZzuAUtFPsu+7r3+uqxqXP7zQ3Gqf5/x+vQIHv4XLBAiQUl/ULEM8B0=; 7:Ij3flzugLwuQKJ7X9YZPX/LOHV4EhcuXiQwY3rOo8+Onc0dQjjfLRtf/dQn5y1E9N4yUqPMAYii+YDSfcOHDI5Rbb10/QSOamdNues0qe7GL8ywcOOa/nTWyMh1NfAApgOR6LjsG6VIMhcKF7Df2IqP4pjIgtHhz8ECoNh5S1+yNOk0TYGocqzIz6S5FS6JNLUm4Q9FDYcftzw3v9vGyVsgA/QhOJ8zbKSXZ4gSlM9UqRC+VmPXSMUtBbGZFtn87 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:zh/UpiIkOyh5iXnzV9yEgsatBv04i8xwvvcB0a6HY2xTeg2Qsf1WZGqhRPrDvmP2W96c8nm4oiDSplxQ4nmUVeUxIsVveW7YuusA9pHfLqZ9dsh51qv2F5uJIT2doWXOFKH571VAZaF9ZMKGsw2eFIuK77NOtiKOdKYjUfOG8Jo= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2018 10:17:20.1464 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 45b24dc6-4342-49a3-a42f-08d5880270f3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1991 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.121 Subject: [Qemu-devel] [PATCH v8 1/9] mirror: inherit supported write/zero flags 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 , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com 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" Signed-off-by: Anton Nefedov Reviewed-by: Alberto Garcia --- block/mirror.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/block/mirror.c b/block/mirror.c index f5bf620..2fb786f 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -1100,6 +1100,15 @@ static BlockDriver bdrv_mirror_top =3D { .bdrv_child_perm =3D bdrv_mirror_top_child_perm, }; =20 +static void mirror_top_set_supported_flags(BlockDriverState *bs) +{ + bs->supported_write_flags =3D BDRV_REQ_FUA & + bs->backing->bs->supported_write_flags; + bs->supported_zero_flags =3D + (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP) & + bs->backing->bs->supported_zero_flags; +} + static void mirror_start_job(const char *job_id, BlockDriverState *bs, int creation_flags, BlockDriverState *target, const char *replaces, int64_t speed, @@ -1165,6 +1174,8 @@ static void mirror_start_job(const char *job_id, Bloc= kDriverState *bs, return; } =20 + mirror_top_set_supported_flags(mirror_top_bs); + /* Make sure that the source is not resized while the job is running */ s =3D block_job_create(job_id, driver, mirror_top_bs, BLK_PERM_CONSISTENT_READ, --=20 2.7.4 From nobody Sat Oct 25 08:49:10 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520849985720514.3205706983848; Mon, 12 Mar 2018 03:19:45 -0700 (PDT) Received: from localhost ([::1]:57492 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKYP-0004Cm-7P for importer@patchew.org; Mon, 12 Mar 2018 06:19:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33556) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKWG-0002iv-1z for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evKWC-0006bB-7Z for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:27 -0400 Received: from mail-eopbgr10121.outbound.protection.outlook.com ([40.107.1.121]:6708 helo=EUR02-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 1evKWB-0006Rl-V2; Mon, 12 Mar 2018 06:17:24 -0400 Received: from xantnef-ws.sw.ru (195.214.232.6) by DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.14; Mon, 12 Mar 2018 10:17:21 +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=l04CULP2N96xPdMjnSCBU9E+8nhX4a9z06uAeZKwMwM=; b=S35WhydIAOZLfcFRvrzZhUUHmMaYtU5N42yh2mzd2hQAjxVE5sChrhlNA/DhPugnyRKK0MTD/SMfI2W9F3t0/UxWc+Wal4DnhCTa5QoavNgEIUdlvpzX7XZ3LaEYiW4srIbFv2Kpsn6dRCyRqS+ri+48jM3YlFUVg1uztf8VLzk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2018 13:16:51 +0300 Message-Id: <1520849818-6915-3-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR06CA0148.eurprd06.prod.outlook.com (2603:10a6:7:16::35) To DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7103e49f-e183-4e4a-896a-08d58802719a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1991; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 3:LuTVQSWhRLNHzjeqOb9GSh9kpFdI2tB3552EoJsqram3F6up4881KR59XHKe5mY0OkDdjEHxaTbpzKL8Or91HfYt0mrMhMHamZf9WEEBWaBAYkXaXj4Lw7AG6WnuOMxmKc7YJMDV5k7Qm6cVgfeSNm/kPkbYHQu+RU3J0zA0ArQ4uDNM1suzQpvi532ywsapuTFNLvoWIaUpVjb8jZzPjI0NSgj4Ni5ug2aIWl/wF8O34OlWOnaIm2dHz6qx+riN; 25:Nt4CXHL/YRVXzfVpxCtU73PkDoL/9WQZFi3z6GczIX3RxxH/OYHogh7RpZy+BDtthC+aGNaySK0rE79RONtjOe39VOB/aP/nZNS4YdoZeOeAoVvJ6fUHVo92908lplzveYS0vnvW13Sad+4+qp14vZH9e93o8GoasNDRndt9NgwJwG2dGy85kCH5Wcc4e0KIfYzSEXsS1rLfmdxR1d1U3oJJMnr6eP1/KgvOWpeUDtKbsI9H6CYaKjW2aRI/+LU2mglTj0cbUguPm5pgyRrviUbH+qgol4j8VzKdt5sFhdxLu6HR3VwAgtc64SQLUD/rj2HsMtDhcr94pguPJ+W/jw==; 31:Lq72BrMqppvwCQ2FMshYXGVXqUa0Hb6HCZYh+rFJhv2IMoe1PAGxa3Nfb7/zLRE74x5BwNuc/WKCjZ7MOHQJwDuWUAqk3UQS0mvgMUlEGdUlJHl0SjgeZJ9LumLQ3szQFmd2PbnnSRyIBqbMOI4QAdW5LxLxMc4r+IaY9Mu0ux4j6JyZrRoC9OlqAEmLEwqpG3cfdZIIiha1R1xhl5ADH/nHx90+IF/dqbXG3JDC/EA= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1991: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:/t3axrNmICSi/3Tj58JEqg7PzxStZvzuRDrcE5NBm0es/kLQ+S1dWFLVfYtmJOY4apTSI4kVChkGPP0gGN8OUB4rPmHMaqwB1MPuaCFZJGJHsUeP/57zQCy6xDyJWObL2bIo7tQEus+7k/4FxKbx/FKaQ47YVJ5HUOZcGqnmek34KGPtjjL61U6Qb2oDAiJgJRLTHcpbApRDBzJcJV80LuR3Mgc4pGcRZTj7+CWw/zwXsdv7/2W3qLOzXgS4DxDb5zSu5E6hYJNog81XpScz8g2K8vMPZWGXzkpytDMzaa06TEjO5MRoMDMKJ9nb5FsE0idULSEbN5hGMkhViMgqJC5oMnL4/8EGq3kuqgkcgUa608tc6iTp/AMJ5QgIydAKI2VjmOgrnAJ2vLyuhm4TRwzNHBYJh9JvaasusMWZfKc0axOC4GsRB0iEaK9baEomHsiHdkjwC1x9LSvrxiwfjXqCzpEJyn6OgHDoUbHn4JvtpvBFK2djmXqFjlxXllY2; 4:HapQb1NxFOM5QqPrwXFouNZe52yHmkIv2MKWwQXbPCNEuwVS1B9GQ1tyRfMpBlmGN84pJQkllbd3uEj1t+9v23xrSHWC2c8bORZsa1sSMQRmxcwUr0vq2Y1dxjhY3A3HEmVaG89SwFJkD9ehDmlzDJ+B708n+qcXEKMYViioyQGeT6aomFhqTSE8gB510m4nD2hZrL1XyqdtELncGWQBgTLzMJuQFuxqpdiiBSDC0GFWwpiDtiYDrziLfBb69HgkoDxZs4iluXreZ0xrZSlVUw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB6PR0801MB1991; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1991; X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39840400004)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(47776003)(106356001)(4326008)(81166006)(16586007)(107886003)(8676002)(69596002)(6116002)(68736007)(3846002)(105586002)(50226002)(386003)(6506007)(81156014)(8936002)(55236004)(2906002)(36756003)(478600001)(2351001)(2361001)(25786009)(316002)(6486002)(53416004)(76176011)(97736004)(52116002)(51416003)(66066001)(48376002)(50466002)(6916009)(6666003)(6512007)(2950100002)(5660300001)(26005)(86362001)(53936002)(16526019)(7736002)(186003)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1991; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR0801MB1991; 23:xGXPrEzMhN/u8Cm3RgJOUl2qdvnzxxC/+dVwLs5?= =?us-ascii?Q?FppfAJiztX0ESlRFznTeLRwJcCI9CtOt8chiDqBKmt65BJVnSdZ8B2n0tQDH?= =?us-ascii?Q?5yWaaWBqhQ84Df6dupN8wvUzVl+HqAPjQYQx4tD7s5Bnx7clbiURq76niMOc?= =?us-ascii?Q?cXFnpfUK9lN8l7vagP39yotmu1031SaSKsZ8iRoZEdlusD8f2fVIdj6HSZlP?= =?us-ascii?Q?XZIEJBNNjWSupx0/St0AEz3/cUmU75ZCiV/zicM5OzBTKslLgd0oZQtzkpAY?= =?us-ascii?Q?/TZhuc+I3oKA/p9ORzZbruwjuvE6UORLflPsA22wzHpsBhV0do9ngkQfzjTB?= =?us-ascii?Q?S2d+HvSlOLTxUUZrMeLiBX7idzE4XWam9387sL08DwwcciJBW19TN9gWmHUp?= =?us-ascii?Q?JEyjs+R0FVNtXxG7c0gy6py8nxtuki3uN0USMC4d0PaJP4Lnzrsb++biGjn6?= =?us-ascii?Q?y3848vIDrrSsrOJm5HuUx5QQP2Iy6bIkFXdXbuPxjUBK/qNL9QgoS8F54Q59?= =?us-ascii?Q?lPj/fwCmsoMP3UBzqxO3tf+HwkGQJ3d7Y1LcMgug0rwXVZgKy7AhBr6gml19?= =?us-ascii?Q?YTZXEoJ5MqQBr36WAgvQBtVY3cF01YflEmbOludlEfFkoMEdXTQPt8QRWuzO?= =?us-ascii?Q?ZBB6mBSTmRDuN/DgbNn8OOoiaF0PDNHH1OYPepDC6EWC3OX1MT3nNwGFC9iI?= =?us-ascii?Q?WCDCynULLWQky70y0fDqiBfT9oUfGWagqdi05e6A/PIMACNtPuPTsDpg/sCK?= =?us-ascii?Q?9W8ZdO9C0qRYfnA7xvb7DZ7jVIabAAj1/P7wkKQYvnHlHzGh55VDr4i6YJbP?= =?us-ascii?Q?F5M/G93XftNVqhtsfmZMbzuDLrBJYNFN+c03YG1wSzPPn53J+70eog5MteR/?= =?us-ascii?Q?e+dbvviTspunH4ZChMnywTLp0k3q7o4TGByGhOk5bFQ89Qv4LZzotaGOI1db?= =?us-ascii?Q?y9dVRnawXm0J/7J1PKmYA7BT3KxV4hUuXnqYoaYh/P2uMR748MfP0GeMP/Wi?= =?us-ascii?Q?4HP3o+VDNH6QH+xSwGPp3QzvZU7GnhtyGiIVfHQJO2TDWGUTzvpl2snn264Y?= =?us-ascii?Q?lOFSpbBHO9isnbAKb4UZD6z0CttJ2lWWZJR4j9VpxRd9DdOFpjUScAzkz2pu?= =?us-ascii?Q?jCOEO1FAi/5TLSaz/FBhil10LDoE2UrFo0b8g6vM8KPjHMb1YufbhBdS9Uug?= =?us-ascii?Q?unPqVpR7LKIK16P+o6iBHlODE2mOTY+EDXAe0536BQmVIhOXdPGLW103mFw?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Antispam-Message-Info: sgNB4MulLooQ21cO6sTi03SMPIBp4/ct6xIVu6T6DoAerg1dGa2xLglSQ5VYAhvnOaIgpIh8HqI2ffIkZrdS1cQ5uw/HR1GVH9RML+RHAW+Axrf3AlFgAAaDvBGYjZasZ8KPhBWWN4yuPnNnFeddJmq93GmRZ9e6+e5eIoZ3Ycv+KaipqT03+0qp7yZF5Ccw X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 6:d/MMIcooQC6SZ8INohfCRcoEo0yUtwJeluGnUt33IWfkSVWmSGtlIqaOaCHJUB+jjc0I5+kJraOlpv9B2OgFa2RHiPhUNqWlIXHlAS6wZUexFPsqRW4U9Ktv1xYnULMW4lQfRxcmnMARhEf4MsBsia7mkh3ko/ZNgolmWaRcueQoO0uY/0ybkGLNaU4pMzW0ruJcrUbxQae0bBtDk9IbBnVfarsLaiVNBwrNC0JeEEsZY++8Koex0DBeUh2dzUCzHPi6vLdoHAeJqxKdEIT+Ya0aCeYIEGgFEXHaVTs0QdYmHmiev7cVVdDNGMIIMdtcKuSo8+XUJSf3E6GUc8o/F2MnMHO+qPvQCYmTsUPbOrs=; 5:pgMgEti1d6FjBAaikcsGHqCi5HZ+uP99fzLu6GYmysHkpDkjCU2XGyAtZdwaoOjSZP1VIYzudT/CL6GhBPke0mfWaYVlTDf6OzCLo4lExyH7WUxra47uhv3h5j9bAzcvES0n29o0CPUmTkK1W6tCf8ou4dpBz44Nio4fvHkQAO0=; 24:B2fGKMmw7ScI9bTWQs4F0qEGAM5SxRpXXi622B44e0HL61bIi//XbIagF+lgTO+Ycfi3RINF7d9kk6JLIU5y1/3X1fQIlUDWYuMTrR+EDIU=; 7:9N4z4NmFCFdXEWMYxcqY1VcTw3RtQ/xfivTR9yYwFZ4oFrmXTDfVUxTQyfenCHI4k163PWypLkvfKcpjZxGps0ajK6t1ICi5H70CuNP3gtcJMSnj+9xxHoFfQxb/NclnEAjOnpG2DjBnWu5qOd6rXgc/99aKtufajEzNhwWlsKGqSUlZvkC3C3hniEjPGrNt+vND6u8VqqHEMBdopVmyk9gR4YfqnGYE8a/i4pAj6v+hbZ0v4ydXe/YJW9CdT9MM SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:M6g8186342VN3f12PoCXQmbNq55E1CgZFzb/duxH0d9VKT+N7tbF2x3NjcJD6k34O0l7FqUz5sUDLDCS6fKNPhfTTUv2Ldary6T8As1dusNr/vUEp5z8Y7GCn9Grd4grz5YFPNaJ9YrCzq9cs5bJpA+jPI68cxjKx7ZY/ef+wM4= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2018 10:17:21.2245 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7103e49f-e183-4e4a-896a-08d58802719a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1991 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.121 Subject: [Qemu-devel] [PATCH v8 2/9] blkverify: set supported write/zero flags 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 , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com 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" Signed-off-by: Anton Nefedov Reviewed-by: Alberto Garcia Reviewed-by: Max Reitz --- block/blkverify.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/block/blkverify.c b/block/blkverify.c index 331365b..de2fdc1 100644 --- a/block/blkverify.c +++ b/block/blkverify.c @@ -141,6 +141,15 @@ static int blkverify_open(BlockDriverState *bs, QDict = *options, int flags, goto fail; } =20 + bs->supported_write_flags =3D BDRV_REQ_FUA & + bs->file->bs->supported_write_flags & + s->test_file->bs->supported_write_flags; + + bs->supported_zero_flags =3D + (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP) & + bs->file->bs->supported_zero_flags & + s->test_file->bs->supported_zero_flags; + ret =3D 0; fail: qemu_opts_del(opts); --=20 2.7.4 From nobody Sat Oct 25 08:49:10 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520849987123293.8192664398538; Mon, 12 Mar 2018 03:19:47 -0700 (PDT) Received: from localhost ([::1]:57493 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKYQ-0004DW-2i for importer@patchew.org; Mon, 12 Mar 2018 06:19:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33551) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKWG-0002it-0B for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evKWD-0006dL-45 for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:27 -0400 Received: from mail-eopbgr10121.outbound.protection.outlook.com ([40.107.1.121]:6708 helo=EUR02-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 1evKWC-0006Rl-Hv; Mon, 12 Mar 2018 06:17:25 -0400 Received: from xantnef-ws.sw.ru (195.214.232.6) by DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.14; Mon, 12 Mar 2018 10:17:22 +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=nGab3CxsLOV2Bie8nXNY00Y7alG7qwQGdLvdr7kWT2s=; b=G++H1Hcs3M1DJLG7MGfrnMN3MGIP04Y+qEXRJMl2yRLhWaCFB9qIShs9CoytlwXTmPjUD0Uol1Acxh1qo0m7rsC8QpuywuA0WbEbX340LcT5Vg97u90NSRqAAzmZU4/w+ckIuYmvCMlfzwpgcbYZpjNPh7DsN/3YBN4xlZLkLiA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2018 13:16:52 +0300 Message-Id: <1520849818-6915-4-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR06CA0148.eurprd06.prod.outlook.com (2603:10a6:7:16::35) To DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5749b87a-a14d-4fcb-0c49-08d58802723f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1991; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 3:h5c8Gwgr4QDKttjG1U+W2gTKJn/pES1e0R2joA+LWsVMBvF2PPEGn2AVper5GMjVp3AMRbSuaKM4ro0bcmF/oofKqLlWIDn5Bz9dUyoxLDKn4h4Om8+9BiWom/1rJkwWzh8lTmnqbAEEKyKueUl2hDMqqB8fI/oYDDZsvTkatkusbacwIraFxRr6KmgW/oK6tnS7qDpQHyQnmm5ETqBV+aRV8Jl8+LO6mFL+UhwMLPJ7BPjuJDXGhHcxe+4qP3uU; 25:rTAro/E7D0yjKzV1MIE2MHwME/CzI8SEOAm29md5hJUf2hggR2kiEDWx0ATZX1bjWyw401KG/AJmsp0MW5to90ucsValhM/gNO1XP3KlCH7Gog+AmOyM8RaDIdloKD42c0dBYhOlQHJT0eWbPHqu2x7l81c37+Gk/zJQD5uVBC5sksndWutLPwMkl4Pb3hPDexd5lYtmSlYMfy/0g/mrYUkdLSVn15+V7j/xkbBcWK3rFIc7NxVV3RCFwlDcIBetART0eqJAPuZzS+Ko5IuHbtrdoDfIebpfb91PyqtN3H+w0KRZDbOKdsKSE4v7oLZWKmMClbt6JiJVswSJw8tulQ==; 31:lias+486g8wjJn7xQNPAEeM50ZWRYA6G0dRG0PNokQFRINakoNrax5VgECOiIkWvyadd7fS3uAC2qAzeFZ91wSdNf4lPSQef3bmWh7+IaE3ZmaS/igrJm5M95XRZKmHiohlI1oYFcj5iczzlzgToGl49czdvs8rpYRADadE9M/pWbVt4dCjdWYY4oDwDauwbiM3jnhDCVg4ZVL1hvIYs6YDEPanHPSjeMwy5oC+0L5k= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1991: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:12Fl4EwN5Nvi/tIg7uKTtwQgAB9UIJbviJg/eAv/gOpy/Cpx8jgQVNuer54OIonIcvL1R+N+20tfaJ2FuH5JXHHKg29vifaiYxQtf0L8QO+eWuz5mML5kKLOyY8B6sz/tqF57/57kNn7jYl+GfkTybsOM2uXvc07MpqO23VJLq5gk8d7qTKd1iCdESg00Aj+ly1BwN8BjWpdJt3Ajmhh1KQ2AqhRjTRVhYwUggT8csmtrJay+mX0S2ByTyC4ppdaZN+rXJdGTKhFBfimvO4b5RQce+vmtDrd89elZgGpdz8DuX02RiCXJXxxDLxfd/jom5JYqDK56pbyjroqAcad9YVOhxTMRctfYyYi4TPDe7t1mUwsMhGhoVj8i/HnmiK4xGS/GX1I4ndO7/2bWj7R+48Lo9+RcaPbKGW73GjMY+WB5AAbY42gPRLNoY5svwfnmrv2s21RXrT8LVOMfA8MTIwKNOzcVUBTSe4HKx1+PFnSYbuD3plZLw4IIIL4ruMc; 4:hCilLmaHDVK7oELFaPtjfJcikLQNzxJvkSVNjMzMCKGW+JcKKosYmcR7VwYcxnhsCkys8zwLpo/HsKPT/e1Qj2Txkx2Eqo4+1i+THOZqjqW0JLPnF7oA9q9vPrHWiIYzMdSToVMtnIwS7VZ2yPwgIv1uWxroqqUfGfRG3Dzfy5mOvpTNmb5AHFRGFB7fLH+WpqOesbT645UDcTLfEgPIGt4L6SpGLi78Ic0VbqXV8uyDJpWtnN8loOsSUYbkZtZi7AgVQevlBsXKVuEL7vgI2A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB6PR0801MB1991; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1991; X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39840400004)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(47776003)(106356001)(4326008)(81166006)(16586007)(107886003)(8676002)(69596002)(6116002)(68736007)(3846002)(105586002)(50226002)(386003)(6506007)(81156014)(8936002)(55236004)(2906002)(36756003)(478600001)(2351001)(2361001)(25786009)(316002)(6486002)(53416004)(76176011)(97736004)(52116002)(51416003)(66066001)(48376002)(50466002)(6916009)(6666003)(6512007)(2950100002)(5660300001)(26005)(86362001)(53936002)(16526019)(7736002)(186003)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1991; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR0801MB1991; 23:wkyFYuV94JSXYoDqz50W5JvlmrfRp1a10sxJR+N?= =?us-ascii?Q?2Qt7B3yYd+DQD2b/23MIioHmA9Kb0L9LyRJW65457//kUJvbWTgcq1N8a34H?= =?us-ascii?Q?LfIkMSF9VjwljC7eE+D6RGBvsqSA43Pa2wOElF2eynbAgLvOjmHrr51o8XNt?= =?us-ascii?Q?mvQL3s9TZspYWBsEoRMyZ+WW1z4N1xBFOiaE0wgdJIcm4kX91GY/jYRmrkHi?= =?us-ascii?Q?/4K154AVFJ40TQev2OBT24jSslhC4K0y5JPOHw9qh+Geag2981BVPFmgf6VK?= =?us-ascii?Q?YFfu/jJp7zx/NNgbQH8VaQCYIztgils/dDm7/fuxH+HFqsaD0HMNO9aN5QcM?= =?us-ascii?Q?iBMC8mWO6p7fZenBFxFAUdzkASMv14KTmSpdgurMc0+zpKjjFWTGv78chxNO?= =?us-ascii?Q?mAaWXPy6kViBlu/AgjTLI3tk5kRD9h5CQOclMQrdMn4nKQ7ytO8+S6B+g3Na?= =?us-ascii?Q?p1I4Nmh4iJ/F3xMm9VmFq9NH3TM+FoRFUxeyRQwbKkkXEEoxkQwj0fhZdhfm?= =?us-ascii?Q?CLjuEDnAoNtOad8ro+lJaXzZW8w4oVPxqPPiFlYxPfcSlMc4urj/CwFnWvUh?= =?us-ascii?Q?nY5qefip5IbYt7RF3MTYIxiG0eNZMdLrj+dX5azx+7qKo7A7c3xZIpx2yugz?= =?us-ascii?Q?PLn2jabJvvbZvkONN0uPAyDw3l9GNky2UZqmpAE+E3VbqHGe+q24sOUDFf4q?= =?us-ascii?Q?pUW8FrD82NVnlej9mumb6EtNwWXOHtP7T+fnqWhTLhe+TFTVD+BCPvafNAnN?= =?us-ascii?Q?qgpYOmtWtxRHMOCdK6URQuWre+nXDmhrZMfrap9a3mU2dXR4mcW+kIEor4s2?= =?us-ascii?Q?l/lMUVxN/59A33kgS3R4f36zZ66tkv5Wa4QVaL3LJnZb3JKVpKqbLjfcKT1d?= =?us-ascii?Q?xg5I6ijEKPm6fGLfMjglY3MLu4peyw0eGVH8YlJkLafjrbwtfiRILj99WgKJ?= =?us-ascii?Q?nNjeI9SjZ7vCiAzYSTmJ6Hz0bl+IAAas/IbxDRFB3SegktVqI+Azpj6nyWCb?= =?us-ascii?Q?nmUPdLdco8y60QqzccP1hBO/hrMyYUviQx19c9ZkQVvWXT5LUbHlBJL7oYyd?= =?us-ascii?Q?g4fMhmnYHyqeWtpyWfOPhFO1bZPBh4k85xB6q12ZT2+mrfuC+eOunuKqhwqf?= =?us-ascii?Q?75UTPIFQtALg/AbCRDwqDygOrC5Ldg3wfnGdjznXToRnBoSEjqwcsAQsP6Vw?= =?us-ascii?Q?Wm2FsZ+AbJXq+oLtm20CxamgNFcl13/O6AYg5AinPGR9DByG2kdpKKbZexA?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Antispam-Message-Info: VmGOYDHOm9iVf+7KLXNQnnHUfK0UGYyKfkDY75n71yqo4F7olDZHuafvvAkvFJQxMUlWKyGOMMkwsop7A8ylUu5Rf5nO16c5gRQdfKg763x6CQMtzenaNHC6bxqSZ/UjW7w7HRtnnQJMJeT/V/HaiK688t3iS4Dut4PcZfxlqbuZbQFWWxUmXyRJWcnkrzFV X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 6:rAS+duKZ8kRBxZ7IFe8NYznJMkhGZkao10bsZB2H9oLrPz7X2rgedTBttw6asQoqKchFWO/RkQ4alZkEgoZJx1ngH0ODkiB0W1WNKAUbmjY0Rr5pR6Lo+vvkyw+x7xQdr/huQdxBQ+rE4OX4mvYFj7VdAxuWAwrWUakz1lFpvvwLsTC9Va09oHiTPGHrZOhu2VV7inP1rezRGXNmN1+duDhPepp+4Hl7ZW6jTuwlvFbc+Qh50ofbHr1vdUU1X0VYA98VTvfcgtJxjK1L1nXiVXvJ2s2AvioMQJs+NQDicFYgGJRrrcHS5YMo6vJcDbWylNDQTVVVlbMX0gOnkWmaX7LGfrRkm/fuee8qtv4jAaI=; 5:rOynRNix3WcUhTAUBZQ1n1bj/inNdy7a7CNI7SC/QTj9rCVsAZBRbNHqY/udWXCNKCQEvGtRfWuDImYHdq/sbdZ1FGeLx7DTCOHGqG0eEJUFFdDqYqf5X1xOMpoIa1JrVn6J5+at+fywHiArtMwS3NpJIxyM41AijjlblRnEpCE=; 24:fGgZrVdd0SEne0NmfL2nm0RbcG2X8L+SNnwLrS79ECglUc9uGAQjpjKWLZ9wjU1/kDQNzcOoDhYuysbZFpGpnhnYwTsexr+e6DDr7wR0YWk=; 7:ebVv2KIjtrHE08qqGQDqOHa7g9bLNp3KV4QIUh+6QJb95AvuOTRo86QrRFfUsa8b5cTgnvpSwuVVwtjL3LzI8R7MGxNYAJ/YJUCifKeN7D0Ft9WwoSD0+Oa2E82j7j6KsC5lby982V0TIl/wSegDD3RrGdDk16go8h0e9SI0uUDzObnepUwdkTrSrUFAoMuVz6ImoTmCfzNGm/1jQh73XA5Hcsq7RTOcyurdvTz8dsRi7dk3kJwgFInWcLTXcKjk SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:yjZkUZXmzwQZf7eNOn3Gj1SUToA609qdAzInHXFvH1otTkBmYZiMn7owcNCe9NFL9bB1A+xtGj1zrQ7aduWaR5FJk9X8k6Rk8oAQG1y/ORzdPtS/UPVjet9GukAU8mcafH3SfAOJcY8zSNhcCL66efXHFxBnV8YJRf/NIKCbYEk= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2018 10:17:22.3027 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5749b87a-a14d-4fcb-0c49-08d58802723f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1991 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.121 Subject: [Qemu-devel] [PATCH v8 3/9] quorum: set supported write/zero flags 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 , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com 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" Signed-off-by: Anton Nefedov Reviewed-by: Alberto Garcia --- block/quorum.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/block/quorum.c b/block/quorum.c index 14333c1..dc77a23 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -867,6 +867,20 @@ static QemuOptsList quorum_runtime_opts =3D { }, }; =20 +static void quorum_set_supported_flags(BlockDriverState *bs) +{ + BDRVQuorumState *s =3D bs->opaque; + int i; + + bs->supported_write_flags =3D BDRV_REQ_FUA; + bs->supported_zero_flags =3D BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP; + + for (i =3D 0; i < s->num_children; i++) { + bs->supported_write_flags &=3D s->children[i]->bs->supported_write= _flags; + bs->supported_zero_flags &=3D s->children[i]->bs->supported_zero_= flags; + } +} + static int quorum_open(BlockDriverState *bs, QDict *options, int flags, Error **errp) { @@ -961,6 +975,8 @@ static int quorum_open(BlockDriverState *bs, QDict *opt= ions, int flags, } s->next_child_index =3D s->num_children; =20 + quorum_set_supported_flags(bs); + g_free(opened); goto exit; =20 @@ -1029,6 +1045,8 @@ static void quorum_add_child(BlockDriverState *bs, Bl= ockDriverState *child_bs, s->children =3D g_renew(BdrvChild *, s->children, s->num_children + 1); s->children[s->num_children++] =3D child; =20 + quorum_set_supported_flags(bs); + out: bdrv_drained_end(bs); } @@ -1064,6 +1082,8 @@ static void quorum_del_child(BlockDriverState *bs, Bd= rvChild *child, bdrv_unref_child(bs, child); =20 bdrv_drained_end(bs); + + quorum_set_supported_flags(bs); } =20 static void quorum_refresh_filename(BlockDriverState *bs, QDict *options) --=20 2.7.4 From nobody Sat Oct 25 08:49:10 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520850168822685.0031314814631; Mon, 12 Mar 2018 03:22:48 -0700 (PDT) Received: from localhost ([::1]:57517 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKbP-0006tk-TS for importer@patchew.org; Mon, 12 Mar 2018 06:22:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33621) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKWI-0002k4-RR for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evKWD-0006fE-RA for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:30 -0400 Received: from mail-eopbgr10121.outbound.protection.outlook.com ([40.107.1.121]:6708 helo=EUR02-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 1evKWD-0006Rl-EC; Mon, 12 Mar 2018 06:17:25 -0400 Received: from xantnef-ws.sw.ru (195.214.232.6) by DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.14; Mon, 12 Mar 2018 10:17:23 +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=Zd5lIXT9vHRRGoO28Y5oWXO1nfYXS9LkUzK9M3y3U9c=; b=SHW+Y+gJIwZLI2o2jT3h7paA+uXxAuomRqiKlhghiTxhb5tghaysXZC9quCgiQaWyHBLcb0uijfLBU0iXpuPWYq3CAen1Ei4nJIsrklkKSIxZYnA6qlRsZ5E8jp3RHhZbbND3njDkfuqIJjdgiY5VGDLrCwyGIeJl7Wvz68iDHM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2018 13:16:53 +0300 Message-Id: <1520849818-6915-5-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR06CA0148.eurprd06.prod.outlook.com (2603:10a6:7:16::35) To DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: efd787f0-8cf4-4df2-1894-08d5880272ed X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1991; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 3:oO1XvW3KCvJhcnH43KPiS5cg9GKb8qXJkQDfkX0jsmAaPmXOiVaUAiyllNe9xKvaqfyEC0cYVy1j7bcb8q6JM1LB9FwxjOpfp5hnARkfb1sHF9PBLJPXzuFRhIeb7Wz88eIBvpAlB42HojbbGQ2F1BHrhGaNGzeZzzF1lsh5JjJd4+QxoqNKSNJbVBjyBXOtfnLkq9ny4JyV6h4+WYAUTiuYBS9AtG+Opd9azpz1EMam8EDlaWe7E5kVWylepK+b; 25:zil+VChN5ayOerM37su6KuOSjLf4Krabft9NwQB07Pxpd4exZ+LjlbUzvSPppLnJvJzMcP3CUQ831xq9ds9mtflcCeJ+01Gq8y3Dgs2jnKXP4qf6R8AylW28Gwxwy0c45mMrKumTCeiy2R4BCwplBMViAUchL4OSZrJckEl7Zy0/xJRV0lSzlL53AQ03giIWr7/pes+Bsf1sYZgXp13AzUEmBXgvM3E5pi4xDQvP4AyJf81h+Feh/Xxp4G+FbNiT9qWYIdQTzGx2/4zvotZ0aywtSBpyoFmveerwHMVlUskCdoqeYngFoeGLp/RWyVbG/V5DCTAU6JrDGguSfyS89A==; 31:DkLs/+cKx8mC7BH+0HDhB4Ax+8qjcPJbl7tw3Tj24gKF61+0fxwjwJhEx86azRKVxnvZQd9Pgv4SK9tsiPSNFPVwHzV89GYb8nf4ukdlPXDVuLtIumK3RH05JAYSpedw9M8YELbEbGMSjaYpZp6KfzwIgzIKCmVuHzhkl8lvWRbbWDzRXHnoF5wOWQt8Ikl4WUv1JI0cwyv3qvVwcXP9e24RNdgruZ0+lQ6MXrdXFoU= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1991: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:kCA3C97HuJ2GS2EzIFQCxFtwmwAYI9oS8ThX4M5MLwRVcAsA3qmZntws4xzWM/79hFKvgvmDhgFlY4oBtKpHhmMmp7cp5EILqXD7QipmBLNiENwCEeLOPx8NBOReuOo7goKhByglrUFim4OLoLZtCt8a5dedEwYLOTa7Q4uTSyJFj0i6GT/5K/4TEk2fYf2NNg9n916cRy4f7wQfijzSx2vE2fuph8LFzqoLg0V6sUVX2w02YszjeFqlD4+0tJwI/0Nv7spskDZbp4CR56n3R2qI7G1ia6nnwOlsHWkv961HWSUr/Eyd2fIdhbrXkLkYhIn0IlETtGQ5kiz0V6Q/IvmILv10/Ws0VImtjv6iVN4pR4y1DnIoAaNuJz93F77hA0+9htp5PhrMSMblJzCAuZBDfvaAmiolzRx+Qn1GHK921hKDeJVblkacYvsVhy7z43dnanGxuZT1EsuYod3QJS5Q7QkosawN47kFRAqEihnaAN8zE0N8+pZPVePS2Xd/; 4:3iF8ML8oJbMIy4VpcJAJrGkvx1iKjy760TATLstxs6EeNsATva+Kh1u/N47aiIHkcgr++2dHS+i1m7NJmirhqOBKobL1oNmnjj783WUzby3wlch3d7pL2hpvtqltjlMjNcpdEcAoxNjYite0L4coLy6p3X3Zv6nNIEBiKvpryLZsqRJTl6qhcnmNq3I5Vrcr/Fh3ZQEnaqtyd0pLKrHnF8bqxmSAJJZC9nz9NM4axchl8xsa9ywsm5E+782DygIyIyUGAOryq+dFbsfNDPVj5A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB6PR0801MB1991; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1991; X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39840400004)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(47776003)(106356001)(4326008)(81166006)(16586007)(107886003)(8676002)(69596002)(6116002)(68736007)(3846002)(105586002)(50226002)(386003)(6506007)(81156014)(8936002)(55236004)(2906002)(36756003)(478600001)(2351001)(2361001)(25786009)(316002)(59450400001)(6486002)(53416004)(76176011)(97736004)(52116002)(51416003)(66066001)(48376002)(50466002)(6916009)(6666003)(6512007)(2950100002)(5660300001)(26005)(86362001)(53936002)(16526019)(7736002)(186003)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1991; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR0801MB1991; 23:Akkn5YAf/4lrq0oH2kGcZSSY2N39TTRNAB8XjAv?= =?us-ascii?Q?dIPQEbKLLUHJUQRhfhQZHjDSrXOIZDZtxdPrX37f0d3QLvxy7uMojEy2TWkH?= =?us-ascii?Q?wV6e8GJXencXkx3MdjR1LmCGrpbhnM1h2FFMAfb8qZimLlgG2ch3bz5tGkix?= =?us-ascii?Q?RD1fdvwx7P+LjPlykwPmIJQd1AlRGlsD4/tNThzVk4sQefjQ0C5asRJ60D/C?= =?us-ascii?Q?EF8UoNCPC3tI6lyC4OuG0AQD4U+KpIPeyxfEFnpOeCPRDHLPmPWF5G2Ko7Qs?= =?us-ascii?Q?dARDhtYF5GYQjErnc7VSdliZ0jwjE9HGYt7vQ/bj/2F/Wc3lCJ/bZ3NZdQDq?= =?us-ascii?Q?+7kzPO5AD0ZjX+ukCwvgj48yMfVbdWe+WUDOF9pQvSayB9n3BYJ8gSbnexGU?= =?us-ascii?Q?LHrrn2V3T1Wgfb+SM3zvSFZS+nkfz7/XL5arljs2uk1igG3KE7V5/Mft/b0P?= =?us-ascii?Q?lFFKAirW4xWoIknzv1d26nv8b3DF89h1H5sMh+Pd/uXNm5u1xIs6i6eoxgRm?= =?us-ascii?Q?L5pM+JzZvps6QDyM6IIEHWHWNaH/EvCk3d5I9ngO/iJhT4XjZ6qrT/1tCReY?= =?us-ascii?Q?R0BnAS+1BZcpEmzAtrHxzM7KucHzxnKuFMYVuISYEEtXocNLezg2rp2qMJ7g?= =?us-ascii?Q?F4NxM4JLuMFmCbOxa3onak+W8yYWdZIF75q4IGthtlrIbOJsYOPyNZlRsRBq?= =?us-ascii?Q?GAiG5XH38KIvSXZbkm4b9Aydz+nVDBqTqqyjOOLO3vfQHuvHe83e/dd1KZXw?= =?us-ascii?Q?2n2Wjp0tuf3cBQX6UFHQqNApqet5/wc5XAXyBy0O/jkEPoEoPbgd31ZsFxqh?= =?us-ascii?Q?fTokkZ8OvJG8i0rL2pPhMXHXgDeqe9HtRJBqj4TA4hMuoqgMhqAMFxMlDtN5?= =?us-ascii?Q?GTudk4s2yJfgK0CqIzqWRBmhhfyFVV+uPrdcJg2cvMa6YY0PCTU83zYfCU/J?= =?us-ascii?Q?dNlzVNwSIFQhfUttEgAGu67nuKdLj3quU440Nuf7PUht47GIq298M0tC/Sud?= =?us-ascii?Q?KjYv5Z0RG22c764PcEkgT+Gm1E2NSmPm5o0+l6jGKFAaHpm3lTG54lpJY/zK?= =?us-ascii?Q?WiSXy5+rYnHlfpwSUkVIhbTw+ledNk/fzqZ8pm5CTmHMBESdSCad7a0Lqxk+?= =?us-ascii?Q?BAAC5d6SCGM0GG0qdmqjB1F2SEopeFIAtyNkUF0M4PyGkyAJNFFTR4vT4WnI?= =?us-ascii?Q?CLGrKw9DpOY3/3VoBB+BAj31BBBLcsYhHLPmxNHuxgcJiaNYFRUH0+fO/TeT?= =?us-ascii?Q?oA4ipNlPSiWqRNUnVAco=3D?= X-Microsoft-Antispam-Message-Info: sXZEHWAlkOrywiie6qBH/mV+bUak/BStXDXVLPue103Bt3kqv/j23udr8MQhm+J8Xv1SM7kBd9FS8cCa9+o457t1Dn4HACe/ukr5zmhUSSgwRA5P+3JmP2XqLavJLGH6I1/jNrI9SECYIhkoKdn2OAGcQqwtgf2O0W9uxNbYHk9ddKzJKZeFfEGzzVNokOdi X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 6:ernlimQ1m0qjJUc8VkvZd5NYvHIaRX2XUH5XRLKTrad/cd4mOYD3soQktf8JpDR7QpbmbXlVvb0Vp4oku6tVG8zFEvw7oU4NNDsFUHJ8WcR13cGPySZAgEypb8Ym618oXt4kJQNXOsRbkI+bzEkLeM9x8aFo4kAUMCixNgHtjEv59Zno1ZF5Ht8j049n2d5X0Z7uLe4Ij4a82hYERB8Mmtq0svh0EZVqKCTdIgLb/kKKuFS3ek2NUJAF5Z5QDWOMI+lDUCg77qhuFWXst26jxZxofa+fdOffZ0YJK6cRd+SXYnfwZQgTGbhbd5Ie6ye49Q7CoguSO5AQmD5+NZyFeBByIE05FvCslNiz/ET++kE=; 5:joMlZ+mmb3QY/mSy4oP+KKVgYujCv5UUmj+TGlZyTgZ3G2lEsXoKtx1i2q47UmNorEpcWwTDVIyOjit4z2cmIT/kxx0DevMluEZdXn44WVqPzBDQTMyooEk0FJVsv8qvARtZ9HwDoWcGOL+/B283hJkefq8NER32cks8mTWeo3c=; 24:4FtCsg9yn6NN+oVxsxhaRobKL7MhLkd1nO4dFyx4YqOSjY1h7wQskyYaxK5NcWzt0ERcMD5gGBX9/TZ2qtRiUcp1QLI4XVhcTgrrPMpr92M=; 7:Pv9uH83ONFN9E+DuHdJ3vIzdpKOL+gg0DO4FobTwLn+djZ1JPa1HE4p/dPD0Ibl43qdLzSaP247glEZFMS0WLB91Oj0C908/NnWHSnHIeTKIhlOeDi4m31NoQ37KfYUqwQFntPyuHvU+Qwt8JV0H1eANIXdzpAyMW13i4v3Hu7eoeUShMYZupiFIcqz5lKcqhS/82RwJ1d5Q2B2YkjYRb5sK1NXTk+e3ROhFhtWtrKehyWMA71umei9+UIZGciyh SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:uTWbrvpWxceUoMrPY4zB7cYqwPySWnEjpqGYLwTu6tNLlbOGZyi7KYXUhGdCfZHdZACpw1x0oHPaojFgD+NUmPKiAnNXHx6/w6pIkE8l5fV3ndDWtyX4oVUgvWk6rY+A1Ipafm1HPolZaB9Pz8FZXZsPzPATS84zOcvw7NCGlEs= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2018 10:17:23.4589 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: efd787f0-8cf4-4df2-1894-08d5880272ed X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1991 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.121 Subject: [Qemu-devel] [PATCH v8 4/9] block: introduce BDRV_REQ_ALLOCATE flag 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 , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com 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 supposed to indicate that the region of the disk image has to be sufficiently allocated so it reads as zeroes. The call with the flag set must return -ENOTSUP if allocation cannot be done efficiently. This has to be made sure of by both - the drivers that support the flag - and the common block layer (so it will not fall back to any slowpath (like writing zero buffers) in case the driver does not support the flag). Signed-off-by: Anton Nefedov Reviewed-by: Eric Blake Reviewed-by: Alberto Garcia --- include/block/block.h | 8 +++++++- include/block/block_int.h | 2 +- block/io.c | 18 ++++++++++++++++-- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/include/block/block.h b/include/block/block.h index 8b6db95..9747632 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -53,9 +53,15 @@ typedef enum { BDRV_REQ_NO_SERIALISING =3D 0x8, BDRV_REQ_FUA =3D 0x10, BDRV_REQ_WRITE_COMPRESSED =3D 0x20, + /* The BDRV_REQ_ALLOCATE flag is used to indicate that the driver has = to + * efficiently allocate the space so it reads as zeroes, or return an = error. + * Must be used together with BDRV_REQ_ZERO_WRITE. + * Contradictory to BDRV_REQ_MAY_UNMAP so the two must not be used tog= ether. + */ + BDRV_REQ_ALLOCATE =3D 0x40, =20 /* Mask of valid flags */ - BDRV_REQ_MASK =3D 0x3f, + BDRV_REQ_MASK =3D 0x7f, } BdrvRequestFlags; =20 typedef struct BlockSizes { diff --git a/include/block/block_int.h b/include/block/block_int.h index 64a5700..9495e35 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -648,7 +648,7 @@ struct BlockDriverState { /* Flags honored during pwrite (so far: BDRV_REQ_FUA) */ unsigned int supported_write_flags; /* Flags honored during pwrite_zeroes (so far: BDRV_REQ_FUA, - * BDRV_REQ_MAY_UNMAP) */ + * BDRV_REQ_MAY_UNMAP, BDRV_REQ_ALLOCATE) */ unsigned int supported_zero_flags; =20 /* the following member gives a name to every node on the bs graph. */ diff --git a/block/io.c b/block/io.c index 2b09c65..c4f2a07 100644 --- a/block/io.c +++ b/block/io.c @@ -1418,7 +1418,7 @@ static int coroutine_fn bdrv_co_do_pwrite_zeroes(Bloc= kDriverState *bs, assert(!bs->supported_zero_flags); } =20 - if (ret =3D=3D -ENOTSUP) { + if (ret =3D=3D -ENOTSUP && !(flags & BDRV_REQ_ALLOCATE)) { /* Fall back to bounce buffer if write zeroes is unsupported */ BdrvRequestFlags write_flags =3D flags & ~BDRV_REQ_ZERO_WRITE; =20 @@ -1511,7 +1511,9 @@ static int coroutine_fn bdrv_aligned_pwritev(BdrvChil= d *child, !(flags & BDRV_REQ_ZERO_WRITE) && drv->bdrv_co_pwrite_zeroes && qemu_iovec_is_zero(qiov)) { flags |=3D BDRV_REQ_ZERO_WRITE; - if (bs->detect_zeroes =3D=3D BLOCKDEV_DETECT_ZEROES_OPTIONS_UNMAP)= { + if (bs->detect_zeroes =3D=3D BLOCKDEV_DETECT_ZEROES_OPTIONS_UNMAP = && + !(flags & BDRV_REQ_ALLOCATE)) + { flags |=3D BDRV_REQ_MAY_UNMAP; } } @@ -1587,6 +1589,9 @@ static int coroutine_fn bdrv_co_do_zero_pwritev(BdrvC= hild *child, =20 assert(flags & BDRV_REQ_ZERO_WRITE); if (head_padding_bytes || tail_padding_bytes) { + if (flags & BDRV_REQ_ALLOCATE) { + return -ENOTSUP; + } buf =3D qemu_blockalign(bs, align); iov =3D (struct iovec) { .iov_base =3D buf, @@ -1672,6 +1677,9 @@ int coroutine_fn bdrv_co_pwritev(BdrvChild *child, bool use_local_qiov =3D false; int ret; =20 + assert(!((flags & BDRV_REQ_ALLOCATE) && (flags & BDRV_REQ_MAY_UNMAP))); + assert(!((flags & BDRV_REQ_ALLOCATE) && !(flags & BDRV_REQ_ZERO_WRITE)= )); + trace_bdrv_co_pwritev(child->bs, offset, bytes, flags); =20 if (!bs->drv) { @@ -1816,6 +1824,12 @@ int coroutine_fn bdrv_co_pwrite_zeroes(BdrvChild *ch= ild, int64_t offset, { trace_bdrv_co_pwrite_zeroes(child->bs, offset, bytes, flags); =20 + if ((flags & BDRV_REQ_ALLOCATE) && + !(child->bs->supported_zero_flags & BDRV_REQ_ALLOCATE)) + { + return -ENOTSUP; + } + if (!(child->bs->open_flags & BDRV_O_UNMAP)) { flags &=3D ~BDRV_REQ_MAY_UNMAP; } --=20 2.7.4 From nobody Sat Oct 25 08:49:10 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520850156972448.282509882656; Mon, 12 Mar 2018 03:22:36 -0700 (PDT) Received: from localhost ([::1]:57516 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKbE-0006ij-41 for importer@patchew.org; Mon, 12 Mar 2018 06:22:36 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33640) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKWK-0002mj-MQ for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evKWF-0006kt-Vk for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:32 -0400 Received: from mail-eopbgr10122.outbound.protection.outlook.com ([40.107.1.122]:49387 helo=EUR02-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 1evKWF-0006gT-I3; Mon, 12 Mar 2018 06:17:27 -0400 Received: from xantnef-ws.sw.ru (195.214.232.6) by DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.14; Mon, 12 Mar 2018 10:17:24 +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=r9LvqWXRgPVPvuZqEu7gWTtjBzQZ+cxb9k2bRV+leqQ=; b=iTO4z6dQsqn4DlFYCDjz9oP3LDz13q2NXWBTSs6Cy3XYUm3vUAtsBISNnhAWQf3rTLqbc1PKhmGHvZUHH4ueFy0r7mEy3vOSKjKPLHyHVUoIpX4sNnmnRPk1YFWaeYQOf+2w/hCVewqQ8w6I7E57ye44vD58Qt9HxLWsPYLNEYI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2018 13:16:54 +0300 Message-Id: <1520849818-6915-6-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR06CA0148.eurprd06.prod.outlook.com (2603:10a6:7:16::35) To DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d9f3c434-5635-4858-9b73-08d588027391 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1991; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 3:0k9hzdmHZFlIfSjo+mq9sHYPuLPXQ+jLcnVBn79ZQWwQeOFg4MNbimx6/+g6vtpydZDKkIn/fKBHC4Rws8/2kS/L9ed5P4HRPx7otaCehA/kyLiy4UentIhtOYgpN8KxmU1jItRwnZeor5YxoIwIwuIQduuZ3Z/VIfqCC7SywwyPiLlR4AtepebbzkBSaOsmQlL4IL7ty4BCFUs5/0HTxOXwaAZYtSoA8jgZB/rxBnJ8sljws9h62MQLgPsBZr75; 25:Gh+DSRJHlh2xCCO5s/s0ou2XvrT8/Bjuhsq1a8+2/1kbihfJLHWaxAVk9S5T+jMpsijvS4TnFUlkrA5LO0XLKBOpBAmoTearhAX+Z6nQ/zdHRf0mMdwPDx+cLXj19+H74ccZo0oJfW44z1jUdL7iwoBSQFfj4mOLb+LC893kulywdFWUGo3UXo7zzwUMVBtThoByZ4LN8M6L6IQ/lC3FQroAQXyb95JZvzu5JlkBDiS82K6OtBQ+kIjX3B/DZzpO8FgNZNkCTmz8bXEsq22M158EOeOcnVnANLMqa4nsW0a5RKcH1oUIjCJE8zFZuw1UvNg26mkNjbkgTTCj2fVq5g==; 31:lx4KInCDGK/+vNkWxcwuysPr8lFGGt0jsfMsRQJ/QGpDegObd2i+yYP653h6bpGIijMgFtbzwj2z5K6nqFvwmx+1K0gMVO1VBBqeXNeDQO7PnnhQMfptaf02JEncodEid9tUfz4vHIK6lNGvAt2gFspcDYjLabnqsI76uguIJ0xo//H0gJ2ekidRBIXtBc4m+s2tVn+oruEAc3JBcIx3DJfF855VgeDNJ5NPFDrmb3E= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1991: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:nCMA0DpNfACOwuL3CrkExLifXcng2b1EputhI27bzDlqBmjojBE3ORr9SlhAHlsU8pg7knpZ7l5lLffGDhnotS2xc8nBFfdnUWAXccW9w7oKIset/aFUaxuSLJ69Z3FD/JdbgI97BXcJn1EakF9V3E51Txt/mtvYXi/oY/sGsCm0xSBs+KNgvfCc9LWsxnqZ1PEsxSELXMIfpUiwWFJ3PLaFsec25Wo14j03mwxACt3IzN8fjOQvIBWJ8fznMsF2rgwcJCzWbeTSveabxv2j+Z2vA2wR58c37FlE5/vNV96uu5Bt022jawG1+BfeEREH207l18HVMuP5M4T2SUYQRMdv3HkTTXYlgsAzFwUy9iJKKvZGfPOx5Sl2MnBT/hyUdTHzW2Eo95nsdnSDF1c3T0RMRRtPlICHyU7q0Tuc+Gg7TxYCnn5rJCeSwUSz4Xcx+Gkqt8rOTuj8/BFxUwUIauRWxDGspeWWKsUHArWXpac0UgZXu1H+P2eaH7laLFun; 4:5ZJ67tBJYF4fIBfcbig4YJRmKSBReTkOyvFJ0J9czx9XrXu1mnjYtf0H8BkbrIrZfxjmprdRYHoT4IiQHJF0Wek6PutJakOCwDP1W1R5h5aO9b+BX/Bu1T803VW75icQQ79Ewq/YaBBanhXFgdovS28IVFN/V2O4z7v1jrDKZBKFjvn01i3Y/2EBJndNirwnt/Xu2BsVSsT4Thflbf+7RUKUPCVW+Lp+Z6kJzKAwQXRGPXePoev1pf1+4cjc5a9UYUu0EKEJCjW98y33/+MSMQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB6PR0801MB1991; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1991; X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39840400004)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(47776003)(106356001)(4326008)(81166006)(16586007)(107886003)(8676002)(69596002)(6116002)(68736007)(3846002)(105586002)(50226002)(386003)(6506007)(81156014)(8936002)(55236004)(2906002)(36756003)(478600001)(2351001)(2361001)(25786009)(316002)(59450400001)(6486002)(53416004)(76176011)(97736004)(52116002)(51416003)(66066001)(48376002)(50466002)(6916009)(6666003)(6512007)(2950100002)(5660300001)(26005)(86362001)(53936002)(16526019)(7736002)(186003)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1991; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR0801MB1991; 23:YGcUbST8YSDeWzxuWT+tf3iIDeYu7TCY3nAtF+2?= =?us-ascii?Q?AnnQOsbjQ0/SFOgHanXBfPHqlzYe3AsGCzUfl4T9N1TH6cap3EWYDTM4a1Rk?= =?us-ascii?Q?n0E0u9LvXn4Ooe0oGInb4Go1IR0Tg6OEfZIj7tOjMJJg/Pib3PxUc9Tt0FcW?= =?us-ascii?Q?RtTtee8vUD/MvKB5+EToddE2YlJ+hB1QoDwoazYxaLEpZUK0e/48YFDhgLH6?= =?us-ascii?Q?2e5hp/lbz5DnpreQJ6IGisTcoeu7mj3m6QsN72tEHsAMkeHfMYAtR+qsf4Nl?= =?us-ascii?Q?2yutGTtQoPrX+EzEqH223olaNKWNU8Zr9Ph6i/VxJi2qJkND5VWZ2GN5haKq?= =?us-ascii?Q?g+W/ftGNNHccpxnP+ge3XFXGc8jvtriyI/gxZGYeIdvo4dNe/Z3nKzO29gIc?= =?us-ascii?Q?v2vYJfMGP4mIsyLAHjslPhkmZ7P/UgTQkY/YFTPxfIzHo//xMJ0sqlPqPHiX?= =?us-ascii?Q?bXiuKSG3cow/GitNQhcFHE2L3zFhXSkwq9ps3ZL0xYVOaHx74AnWhZJPJn5R?= =?us-ascii?Q?kjHuCHql9oXx4KdKpX4g0RZSVLqbw7dsMBshNIMoDXTGD/RbFCxfsCBraKWu?= =?us-ascii?Q?uJPqd3HqsrTnIzrU1zWOJ7F5DK/6YV+TAwn5nqOhM0wxZ12ONpp3lLBe/1mn?= =?us-ascii?Q?VCUo2i5YCcyZTuqv+n/ZwWkfl1SG7cXqiX87c36UogE37wWR7JDny0e/yL96?= =?us-ascii?Q?fDBMbKHQ2unRk0S1dSBehlr81MRBAvD/wQ7cgC2LlSP7/CBBuMZqwNswERs6?= =?us-ascii?Q?n2IQSvEdmzuxjtvBaqXTOaXYwBAomc0e37J/uTk0MaBteOha8EZkEvLcVFG0?= =?us-ascii?Q?To/KxR5yGSHo876EKq9j5f39zOafd54B3Lp5hyndNmnB2Pwa3IrZLLERW/Xm?= =?us-ascii?Q?7oZXMpHGOs81OvzH+W8N+zZS93ZZkyyWXL/ngySzd2SgqK0mmjgZRy2m9a9N?= =?us-ascii?Q?Di04aY+u28fZdZv91q/yJ5UDT22tr9jSuVLPwzTXeI+DD3ki0AmoFuxfNeCi?= =?us-ascii?Q?hlQNnKZUnV97+em89y/Vof80R+fUaWIT6XnezvilttU0Hl77etJdf8KeAnTz?= =?us-ascii?Q?FFYRq8af2uQHF4PGAGABpUQgWM9+6MBYklugSE4RT6APxn8Dlit6BKlkDR0Q?= =?us-ascii?Q?sL6/9/D5a0Q/mIrZKcbKAZ8/qRPvqBAEL4g5eHBxUr9PIGqpRQQMc16FS84r?= =?us-ascii?Q?E3AQ6Hao5bxJ0iWYcZNdW/qwqTr8mC6+kEWZxlQ9f9sOow1/8mSObzOtEiH6?= =?us-ascii?Q?x3QNq7KtGFC91feWjSCI=3D?= X-Microsoft-Antispam-Message-Info: iIPoVo+bFSXU4HpN8XYtmWuacerS/N8gW0RcchQLOeYUmGvuHwAV7+0Jntcu06M2fhv3zfzxjAVkkES1KUj0MntU7+AynnHxvgqWJ5WAR4fGiOtGcOmkkn/SNZ4esoV7ScMF6q8vtiAcZkQvNgOGxaR9y/LwqlUb1lBXPFBDC/CtprC0nbFJz6JQb9HTUR/c X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 6:hDYAiH0ADVfJJ8rRW99raB/6vIc8W1Xa9ZIwZYoV/cAzgSeGUs3wAwQ05bNOxh7rlgRc6En0IvUCUqnao2OtCfpWdOMrDxO2o8HkYjLlbCjsF6Z33j1p4nsmmbyiXh6kVE43HR8HsgnhmD8041FsPlFB5mqa+ceASvutZ9WI00vNEva+5Y2m/FjbEypc6bhsZn2Z+mgJ0xv/KoSTqSa+vd1z0kbfQivBsXBYPV6TnoUes4hOmp/UjU2l6ANMXIwsCdtuzVt9lA+7+zNWH0MeuuurB3rapEVehNHHIpITvEFNZQiarF+NSC2/E/Q9FKg7X0vNc4H3qi+F+daUrciCNFay87EXY0LjfadRxDh5Kn4=; 5:RkoTZCxBFib/TsTSLb3QEfcEVl+ciz1s4/C8THw3srztNuYhk1cEJTxFVz1uNsSZIMMncxrcLHE6U2FRGHYuU3YPF80z3dNlaZeLPLswKZjMdhXjuM4/RBWMSaCtgpKQdklWfmNG7cFsfHMRruwbUkXTBZP4QZf6f/iu0ipHJEA=; 24:W2gnef9Y5v8hzfoGk0AWlxyCPcRFjShPvpWeqiahauy/aMzNqbHA6yN/7voag379j3GJPKNGlq82dQZXXO0+vkQNY6pbSdphNEENcjF0KBM=; 7:2Clv8m7S4PrC4MU+rb+8+XuAkYZxB0bhvmIJcw+7n3fI3zPr/pfmNL48j3nyw/Z6T6KrkYdS6zzLMrt3K/HfxYdpBG1c7sBEpxbGlrqGoE+Kr55J3tqlyoJFRC21s1wE55ubwxiwGfwM0LAV1+G49ifQ9eEl8Rn/FU3uAMGB3izlrUOERG04mdjIJrba5zYhYVPk1we43/EZhl6qXGzBFa+wTl8wj7uUQOyRYdH2M7BmHEzyXvsVTZMDW2/jFB5K SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:gg54Jn5n2rGwx8mCziXiqPBLVAS/QLYJ3eDapiMlBSiO+phcvguVtOyHC1JRYDAy8Q82HJ8LKzHM32wnyVDIUtsTz1GJbncYAnfgqOGLywQaxexsRLxhuha8kRs/3zov7uFEh61dzeUt70qzegQThXoMhkQ0XLagtsnbE+cIVs4= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2018 10:17:24.5371 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d9f3c434-5635-4858-9b73-08d588027391 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1991 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.122 Subject: [Qemu-devel] [PATCH v8 5/9] block: treat BDRV_REQ_ALLOCATE as serialising 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 , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com 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 idea is that ALLOCATE requests may overlap with other requests. Reuse the existing block layer infrastructure for serialising requests. Use the following approach: - mark ALLOCATE serialising, so subsequent requests to the area wait - ALLOCATE request itself must never wait if another request is in flight already. Return EAGAIN, let the caller reconsider. Signed-off-by: Anton Nefedov Reviewed-by: Alberto Garcia --- block/io.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/block/io.c b/block/io.c index c4f2a07..5d74603 100644 --- a/block/io.c +++ b/block/io.c @@ -599,12 +599,13 @@ void bdrv_dec_in_flight(BlockDriverState *bs) bdrv_wakeup(bs); } =20 -static bool coroutine_fn wait_serialising_requests(BdrvTrackedRequest *sel= f) +static bool coroutine_fn find_or_wait_serialising_requests( + BdrvTrackedRequest *self, bool wait) { BlockDriverState *bs =3D self->bs; BdrvTrackedRequest *req; bool retry; - bool waited =3D false; + bool found =3D false; =20 if (!atomic_read(&bs->serialising_in_flight)) { return false; @@ -630,11 +631,14 @@ static bool coroutine_fn wait_serialising_requests(Bd= rvTrackedRequest *self) * will wait for us as soon as it wakes up, then just go on * (instead of producing a deadlock in the former case). */ if (!req->waiting_for) { + found =3D true; + if (!wait) { + break; + } self->waiting_for =3D req; qemu_co_queue_wait(&req->wait_queue, &bs->reqs_lock); self->waiting_for =3D NULL; retry =3D true; - waited =3D true; break; } } @@ -642,7 +646,12 @@ static bool coroutine_fn wait_serialising_requests(Bdr= vTrackedRequest *self) qemu_co_mutex_unlock(&bs->reqs_lock); } while (retry); =20 - return waited; + return found; +} + +static bool coroutine_fn wait_serialising_requests(BdrvTrackedRequest *sel= f) +{ + return find_or_wait_serialising_requests(self, true); } =20 static int bdrv_check_byte_request(BlockDriverState *bs, int64_t offset, @@ -1474,7 +1483,7 @@ static int coroutine_fn bdrv_aligned_pwritev(BdrvChil= d *child, { BlockDriverState *bs =3D child->bs; BlockDriver *drv =3D bs->drv; - bool waited; + bool found; int ret; =20 int64_t end_sector =3D DIV_ROUND_UP(offset + bytes, BDRV_SECTOR_SIZE); @@ -1498,8 +1507,13 @@ static int coroutine_fn bdrv_aligned_pwritev(BdrvChi= ld *child, max_transfer =3D QEMU_ALIGN_DOWN(MIN_NON_ZERO(bs->bl.max_transfer, INT= _MAX), align); =20 - waited =3D wait_serialising_requests(req); - assert(!waited || !req->serialising); + found =3D find_or_wait_serialising_requests(req, + !(flags & BDRV_REQ_ALLOCATE)= ); + if (found && (flags & BDRV_REQ_ALLOCATE)) { + return -EAGAIN; + } + + assert(!found || !req->serialising); assert(req->overlap_offset <=3D offset); assert(offset + bytes <=3D req->overlap_offset + req->overlap_bytes); assert(child->perm & BLK_PERM_WRITE); @@ -1624,6 +1638,10 @@ static int coroutine_fn bdrv_co_do_zero_pwritev(Bdrv= Child *child, bytes -=3D zero_bytes; } =20 + if (flags & BDRV_REQ_ALLOCATE) { + mark_request_serialising(req, align); + } + assert(!bytes || (offset & (align - 1)) =3D=3D 0); if (bytes >=3D align) { /* Write the aligned part in the middle. */ --=20 2.7.4 From nobody Sat Oct 25 08:49:10 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520850006395348.1727365072586; Mon, 12 Mar 2018 03:20:06 -0700 (PDT) Received: from localhost ([::1]:57495 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKYe-0004Ql-Jj for importer@patchew.org; Mon, 12 Mar 2018 06:19:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33643) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKWK-0002mt-Qy for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evKWG-0006mo-Jx for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:32 -0400 Received: from mail-eopbgr10122.outbound.protection.outlook.com ([40.107.1.122]:49387 helo=EUR02-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 1evKWG-0006gT-BX; Mon, 12 Mar 2018 06:17:28 -0400 Received: from xantnef-ws.sw.ru (195.214.232.6) by DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.14; Mon, 12 Mar 2018 10:17:25 +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=TuYPfy31LpFnKCTBagXVfIQ2AmtwX3iKmqaimCxvjPg=; b=DdJUk+jYO7250l4yq3yNHjl/LNHFdopa5cWKDQaPMZuzxxH8RW5Nqt7WMAw0j64hvU9UbTQSGfBteExQuEKEc7cQnFK2U4xRl2mG9ZhUtqJhCiH4uZQOT5hVUsv/SN6VC12MzsLnj2JSrAgwE9D1s2un1dhai0Qb+opw9RXt8DM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2018 13:16:55 +0300 Message-Id: <1520849818-6915-7-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR06CA0148.eurprd06.prod.outlook.com (2603:10a6:7:16::35) To DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d16a01ae-235c-499f-80b2-08d588027438 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1991; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 3:CpwBd/+eQk9OetZfNMnnYmy/gs2VnWJ4vj0FvAkwt7pMH7l6+sg1w+0DUGxNkfSDJaGy58WNZXQDSQOTa+fIBDymFJ4zD9iuPwro9kaawiHj0beU75H0OThmP4nLt6j7lsHkOUN937yfbWfb7RcSjbx7NM5ZJRF1OjnBKBdPOhocaOjkG0celV1/C95ybQ+447BJtKbDbbbFSx/dc/XSS5i/tveFv7PveByYqaCpfwfX8n4mnViAphgqoieJmrf2; 25:BgwrKPVVFhvpR8mPKh1JjvA7XHF7g4w4UBfY/fsSgSXFt5za6wqLBTWrwlZBSqFuQsin+CguNoftN8QG9pLilWGUnJJ+lhzDCSkK5k1NnPtm76nNjxVXkEoB9zWQJRW1CR5IiPEylSkYavd84OboCb98rLvbPBVptOEjeAvD6qlxMo+0Ly5OELv25H8WMJZSjgv0ylpqqFqA1wC4DCSu9iVMm4ZlitT0Mh2MvrynjvDG+Q2XKRc2C5g3nUhFpQ0OtTPsfdtZtfxRRLRJjiOR2ZndmVUBQoG+6sSE/LMm/PVFmUFnE0AVLEGj5npdTdkigXtVd1FEzJaPjqdq3YPy7Q==; 31:3mJWDekQIK6stHYhnJfvFAtN/WhPk8Z3Y06uhFUyyeHiHwTTsa579Ye0qzNIMXPhxZv9oedAl71/7VwABh8p5lb50NKTScxu76GIczS/jgea2Wt6Db1PvK1Pa540nSrlqAQDX/txE4SBDgStdAFbFkq5hxANLzrgNv093hHoyy5O5fniG61g2wnxwUeqLOI9pxEW+ywjn1qjy7CI9flJJrefu3G7oKwBZEM6hfqca/E= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1991: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:MQvroIUzvjyzm3RKUTY60ZbiueI/l3pFzuk66MF9x9LuEo/uSEDcOMC6RVxe5FoXcWAUaLyqphOZenWYEL3h13d0grXI6EhLMbIiY5zloZe6pZm4rf0ZDUhP6HEpYz2sC9QLL7KbifZUz+M7MXNPZ1E9/R6UV7MP4FxcFp9Hg4GYJTnOx5iF+MwHIsEZA7HSFCQAnCKMcgnVGpM2KgxsF6OYhr2HXrfIlmm2EGniRhuZ7d1s5FsKMbbzprnCNdBSnxcJCHDL92DAq7IgPw/Hk7ecnZrYIKuRUujWFGgmk2b5RM+EYFIj49RVocHm72I6H0ooUsa1aJkZTjI478y4d4a5SiKZeuCbVEjxWbzYMqLnARC+z8IFA+8aDBQsG0Wkru8ZGClh+Kisl/kZedPmP3Ww8fx+CkwY8BCXC3JJaqspntEovjL+UEtLYNUAl2g8Ev36cAljJJJGuQAbITzw1mRXdUEZv1alz+2kcsZcdWcAr5YU59QPDQnNRG19mprP; 4:NWAkC+IyTT667Xo8kr9QC3T2UpW9s3al/KN90mBx/IKoIoqdbkXznDzG3GSbUGjSiNdxNGN74m3wQfR/Ub7f+PdkPp3AXPy30o36cg97uJ3mJXpnDSNydAH9SB1/loS/6sXMFZEJBhB+nyxwGiOuNNVHusIqvEA/9T4Ne/SKSW+gJhM/qQ8yLD4BOdZ43cODm1WFIe4g1plg2bhEV9ZQKZb9FqzAQ+vdRb7TR0/9r1gUlAUhzoGaZlAkOdCFxwwpCRFojLs99sr/u8+vFC5NHg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB6PR0801MB1991; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1991; X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39840400004)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(47776003)(106356001)(4326008)(81166006)(16586007)(107886003)(8676002)(69596002)(6116002)(68736007)(3846002)(105586002)(50226002)(386003)(6506007)(81156014)(8936002)(55236004)(2906002)(36756003)(478600001)(2351001)(2361001)(25786009)(316002)(59450400001)(6486002)(53416004)(76176011)(97736004)(52116002)(51416003)(66066001)(48376002)(50466002)(6916009)(6666003)(6512007)(2950100002)(5660300001)(26005)(86362001)(53936002)(16526019)(7736002)(186003)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1991; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR0801MB1991; 23:TGDSCOJsPGApRwPrZegtpR+RkjQfzW/TELl0oTT?= =?us-ascii?Q?xM/oFGVmkm+QPKRWdLelVBSqdyfLDi3Knf11UUk1nf5EslEAW7xItp/A+QFW?= =?us-ascii?Q?hQ7AgvZmz24thPpUSgOQMadpnnn0AiMi5u7T04Pxxgs22ta8Mv5QDnEs12Ee?= =?us-ascii?Q?kFdPyP0fJWGvUoCUzftAF4wQ9GR6IvZMNSWC35AQ1h/AhgSMFSEqll7xwVSt?= =?us-ascii?Q?MBrQVGho8k8/5ntjOUscUGsHbWo4XnGPInKLYAL+kd9vcg7BrbfIpi0GC81y?= =?us-ascii?Q?UMH5JLM7HfTVKPDc6jQ9a70Vlzb7j0WNEeXOchDoN4/ZNV4ZNZXU6xQHzdq/?= =?us-ascii?Q?QOnyaWzUk6pTGH7gTm74rvAy1O1t1ZfHseaWyjJRelAmKHyIjjuQ9hQit/Xf?= =?us-ascii?Q?IpMv+dYN5eW2p7CYMO3ax/8+dGeAzoRRgNLAB20IsBZftJoVVdCjilGAm2EB?= =?us-ascii?Q?w6vD9n9Q9QQ4D5XifgqArs82Q4xGwotfIqUaCYICAO40qQpfRu2+56RDqHig?= =?us-ascii?Q?kLVX8xK8yqOjz4UBWaSFfT23FrOdUnPc3yvCoDus2zS/AVgk+7A/CmK/MhhE?= =?us-ascii?Q?ubZGzyB+h5BdykeQMk05hB6Mu2pmcHvWU2N07mS8NaSL13IO9HvZ+21z8BWh?= =?us-ascii?Q?C09LkX4uxBrSZKzwHIkPWgxZK/kB5T9HiGt1fA5t4OdUokXCp4OL5Ehj+C3T?= =?us-ascii?Q?rh2G/Tz1UtaNKa1wAfCB4K1XePU5GRNLi8BpC6pAJAKRvs296v42n8ds2tJ6?= =?us-ascii?Q?SfgvNWOXqfUlYu2+tbABkNmdX4Q4F8LnIStM9VYwOVitnN4sGUoZUROvyes3?= =?us-ascii?Q?kIGc8D+xHSZZmfFIQp/mCYYwND8qJbGrTW3MZZrgt6KHMASZi8B929jhCLAo?= =?us-ascii?Q?WWZQ9TNAiBihu3bj8hKMXtChbT/LWkAIJC73mElnBFATYTl9bzXkynlNoXec?= =?us-ascii?Q?8L1utV8YhXYz/Zs53RjrPPsJIyyGs08SgNSdNWJo15QUET9SV2q/B+xvB2Ey?= =?us-ascii?Q?zUOqUBxnziHqnDl4b+u3/BBzRLePz68s4ESHKpnSxCegb8XL09tGpTIRNrZc?= =?us-ascii?Q?u1/llR93mdtn2yisLddAjo0vVXsNstPi4Inp3sxDcrpq/AAcoFZrWqy21eNV?= =?us-ascii?Q?x7Eh1XRQGBheMCOwNg2cM96AxKqnUnF7lOMurQAF/elg5JPlK1Vaae4CEHXq?= =?us-ascii?Q?iJYlqv7Pm92x2uztsW/+BbINx/aNgd+/zkPwnrlvnWVleUsl04uO6j0po4FW?= =?us-ascii?Q?KznRAfg5+lYGHDk/D7lA=3D?= X-Microsoft-Antispam-Message-Info: lAeT/FAmlCfqXR0gDa/NTwOKu8NLqfMtW86qBnrzjUQLXSCfpQN6G6QRcefliyVokp812HJ5hCIvv8lVuj4gNtfgd6OdvFN3wAVMhUOL8sBMx1hWlDIHhbUjMavjpk3GH5Fkgxdy3uN2umkeYO8qZqQly2HRxzubG6INSW5BA7wjDB2rDmrG4lR7TtdMnabN X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 6:3BWrF3lgQ5kagTBLGEvPYs5Vl5qfntS9Vb8Z2rNf3oSNAcLXZJSnbE2LqDkmLFL3ddATzOFm+WUqS3KpRyRwNDZ7mu0Y7fJKa96VEzFol8wObXRdv8SGeuHp6KagYUFVTOlnVfJdmPJZ0+qD8YIoSTg03bqL/qSS1Us9C8otw8/wNc8NPqz2RNNmIBhXvuWzw2lesCYKlFgHcIgcjkxxaCIwBpMCxuCb6ibuy+bqgPeWJ/1iNAtOD3ZVdaJ897Sp1CKf7SU0yOgRz3+eicN1NK0ArvA/ROqx1sISCmNcOQBePjYWLJlMz5D2GTEYqJh1cFIlnPwnGopylnOt129UPjdmDXTPNtGz18Nfuor3uUM=; 5:nLFXKKz0Do2fUiOGf60qJdafE9pjgRvLFihfPWapWvt0z7bDsSTJeyZk9ECckMC+PhS3DzWwI+Bc2usmRORkEPnUlRJf7/FEIu/RcRWor0O34QJbJ3totXpibpAwps5zPLZc0C5SoxlxM5m4FB/avbNyP2DzC635onglc23R25k=; 24:BcwaJnIBXPR1m1mhsPTKV3kTCeXNTzmZ9qDEo+3ptB8i4a9DmUr+y607Ya27Mrg6fw5I3wv3fktlPDxSpKeXCeI0nFXpgQ2c42MqYfkVLik=; 7:pFyAWJZy4C5MOpbCUxxBo0Gp9ck/oN3okIvsMGyzirxUFOIPJyFMTWDrmCK7YNY/8XML0W6Po5ilKZBQiTGiu1EaAKrVdTUrhxH/sga+UWc+iVuNf+nCmEZT+3SNqBVRLqte5U2opeEjq6kmTyu7ioO25SOp+qPGlYtlDjSPdSMORk1mD9VSbvKq7ZDfORZBWAIZGrHnDI7gzawvJunOvOhQ8MlPe+Pv2Yy/eP7o8TYR1hZ8H+uireKgczdQSUYU SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:xVUyo40zA8SN13s6rHIPg/if5qshqCsleJvQ3mz+gsrrXQKM6WcBSQIbev8y2lDVwNjdryLmfYIvS3Dmu3pY6FN/8j7HPwp+PAYFw2Oh8JAaROcCGWyXPDdjfJcsxqbphXpv90iHnICqoAkluL4spQru69HsVzsuVDiI2gs3xqM= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2018 10:17:25.6308 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d16a01ae-235c-499f-80b2-08d588027438 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1991 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.122 Subject: [Qemu-devel] [PATCH v8 6/9] file-posix: support BDRV_REQ_ALLOCATE 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 , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com 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" Current write_zeroes implementation is good enough to satisfy this flag too Signed-off-by: Anton Nefedov Reviewed-by: Alberto Garcia Reviewed-by: Max Reitz --- block/file-posix.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/block/file-posix.c b/block/file-posix.c index 7f2cc63..2136df9 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -560,7 +560,10 @@ static int raw_open_common(BlockDriverState *bs, QDict= *options, } if (S_ISREG(st.st_mode)) { s->discard_zeroes =3D true; +#ifdef CONFIG_FALLOCATE s->has_fallocate =3D true; + bs->supported_zero_flags |=3D BDRV_REQ_ALLOCATE; +#endif } if (S_ISBLK(st.st_mode)) { #ifdef BLKDISCARDZEROES @@ -595,10 +598,11 @@ static int raw_open_common(BlockDriverState *bs, QDic= t *options, #ifdef CONFIG_XFS if (platform_test_xfs_fd(s->fd)) { s->is_xfs =3D true; + bs->supported_zero_flags |=3D BDRV_REQ_ALLOCATE; } #endif =20 - bs->supported_zero_flags =3D s->discard_zeroes ? BDRV_REQ_MAY_UNMAP : = 0; + bs->supported_zero_flags |=3D s->discard_zeroes ? BDRV_REQ_MAY_UNMAP := 0; ret =3D 0; fail: if (filename && (bdrv_flags & BDRV_O_TEMPORARY)) { @@ -1416,6 +1420,10 @@ static ssize_t handle_aiocb_write_zeroes(RawPosixAIO= Data *aiocb) } s->has_fallocate =3D false; } + + if (!s->has_fallocate) { + aiocb->bs->supported_zero_flags &=3D ~BDRV_REQ_ALLOCATE; + } #endif =20 return -ENOTSUP; --=20 2.7.4 From nobody Sat Oct 25 08:49:10 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520850322036417.7442750268035; Mon, 12 Mar 2018 03:25:22 -0700 (PDT) Received: from localhost ([::1]:57536 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKdk-0000nF-6W for importer@patchew.org; Mon, 12 Mar 2018 06:25:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33647) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKWK-0002nA-VI for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evKWH-0006oF-6q for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:32 -0400 Received: from mail-eopbgr10122.outbound.protection.outlook.com ([40.107.1.122]:49387 helo=EUR02-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 1evKWG-0006gT-VB; Mon, 12 Mar 2018 06:17:29 -0400 Received: from xantnef-ws.sw.ru (195.214.232.6) by DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.14; Mon, 12 Mar 2018 10:17:26 +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=7PBC+RsUKZIc6QZvwccRzXMwyDgF7CAccBCHSDnqymw=; b=bKt3sOmkZgsPKp3cmuV1nxqoZkcUtxp5bU2H3moe+lrUqm7Y9JqWSGpd8V4HwK0tG262XtcSbCQGiNMjkT6/IcanXVT+uwIwXwpCF9K7ISxaH9BJOs+spre8KAJT2T34n+8f2ZcT0UzHGFCTZzxvuaeAg4Co46n7lBWZSlP985o= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2018 13:16:56 +0300 Message-Id: <1520849818-6915-8-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR06CA0148.eurprd06.prod.outlook.com (2603:10a6:7:16::35) To DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 02cfc388-f2cb-4aec-c844-08d5880274e1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1991; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 3:mlfJxeNKp4jPYeAHrFiaFE58ltClePJ6w6jd6jWa50bUlEIPfIHsXl8HQa6PGncAE8WYGKvOQ81wF9lU0EItPwqBb+sDtXd1ESLw7LX7LywnW9fl0xBFzhKrWPq0gwcYp1f/S1uLqLOr4iE5gpmIuWlnLeCSFyMBYtnE5/O+Ahq7S5x6jgE/LztV2051koTFH2y1z+F2uAAM9I0X+mLfsas+s6oQLynyNeLiDj3ARQT2bjD2RNhuFQv0yUd6ATdp; 25:KElfnvlaiQJ/z0XeqEAgXCpDEcvb0uVuwk2L+EkjtvQX9D7oH6iWgOQj5KzC8XkMRc7JbaYWZf+vb3T3/FF3ev/IyMYy+c6KCGQXKat9+XqUmGATNaGq+WWra5Y1yaKdA64zOsva8cctRN+1OBZLvtd0rErH8CnyLcuc8N5jcuckxrE6DeiBqCmVDKn2xPmVubugYpIlHYzjvhJiTorYYAYCL0QtqlLqMb9Rgs08hXJ0gAMwCI5HjQPeX/6dfPn1FjqKs8WQNfIBzGgwaWFO0TSLFvnablZVq53vPgScje1vaibrPdi+EHL6MqPUnyQcW/DgKlAy4uFTBQeMQaABUg==; 31:dGFkWChDg3RSa2qu1qkq+UQfTNiR0umlDmwkpq+tyqT18bNIXPcbOcFw+OlFtH54PuqUYoC8hmK05oXbqVUY27Yi0o/E+VZiBbaRVxAK8UaB6jT3CaI+HSGS+aUZmJyNafjByX+G6sL5GjtDICfZd5ztA7fmq2N6Q2HO2eiYSy7NhihTHZ38b3tqU5/1r86myTIhcyNkZ9cjgD1FyfHcalw/0VBjCj1MuQcbWWrKs84= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1991: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:oZmk4NgRdi5Jhu8JUqZQwqo5fTkYcXYQwfsKZ/4/wfJgnEYXRWHbPtXKaHavBEPHW/Uy1sf124lOq6xh/5sMtRi2Mc5L4L3xkTC5+ugRqyS5bDG0UQcW+GHQcOgZaQmrG90U3/TqcpIxnUl0kvtp9JRT5sOANRKazwmCOrYTJHsNodaXRw/s9dzQuY7h8cgNZOD+zCoHHj1ewiZHAgL4NvyeI2VSC32r2fQtBgXfdyBTVKJa0D7idpzLd3T2pWXcURwxFeqs0p2emxhyYZybXxLav/ziWX8jIk64mbJjKKdMHI2a/n5JChdrBp9l8fVMVXCtPo7OXe4zhEHzU/Fz3FsrRkUdLB2OL8qpioTkw5kSy+CkG0uW+8721ODPWtmKaz3FJZ1ylx0OljbxKZKO97cHqJqdlHbFZ49arcqXMs/wozPRrUSq4NzLfkujzPLxwphjVxhtEc6oL8TrH3YOOWs4JNMvsUEf+mL3Me5rQuduhrF/hPs9t2g6A2Ht4oB8; 4:+EsOBcO1HQCugiVYiCTcpKz36M6rJpwox/twyUEYgZ+wJtUd3zmjyYqQS45CqaGqZomJVqXF+2h2hdIZtEBzuYXtD40AuKzXPCsl5ZA12lP+1kJfJlCaN4nUpjYPoTp/BulqilYa9NJEpMVk4rE17ApVz825lMkQj/5zZX07Nskqfte7piZPtCTS4t31R/cKt0bg/Au3DgPVUOSzDpb9c3SvqwswTr2oLCEc+hu7Z7FdTyE9BJxAqo+UpwV7idkZLwqSo72PPuQf8P+Kb+rqBw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB6PR0801MB1991; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1991; X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39840400004)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(47776003)(106356001)(4326008)(81166006)(16586007)(107886003)(8676002)(69596002)(6116002)(68736007)(3846002)(105586002)(50226002)(386003)(6506007)(81156014)(8936002)(55236004)(2906002)(36756003)(478600001)(2351001)(2361001)(25786009)(316002)(6486002)(53416004)(76176011)(97736004)(52116002)(51416003)(66066001)(48376002)(50466002)(6916009)(6666003)(6512007)(2950100002)(5660300001)(26005)(86362001)(53936002)(16526019)(7736002)(186003)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1991; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR0801MB1991; 23:z2PlVLGuWvhelHak0/9I00qphK9iXIIM/sE+7ci?= =?us-ascii?Q?tV4zuWa4As9qeTzVsM7PRmq9+Et6lu2HbP7CfsrdfDjnlansNmTDgJP5sk+B?= =?us-ascii?Q?nUXg4hJbm6Q7TOozMY5MZShrNuRwUcZ9p4lO6d9moOJdZCnDeBkLKQUhBCny?= =?us-ascii?Q?4UvtUYOAyqetx0wCbQOidDPIM3+vU69ijvVpzNZ0Yo570rCQMZJj2QCiRsOc?= =?us-ascii?Q?ovCHtZC9F9Qps0km960YdHPCi51rLVDjQG3BsNPuFlcI/xlkbe7ibQRR4ZEL?= =?us-ascii?Q?6qWOjGqcJC6jLUJXzeIMvBjPm4YEbpJp2c1T1WcRqwJ8TPZOhu9HvpdYFcEZ?= =?us-ascii?Q?c0Btt3j8YLC+wEdNt+nf+2BdwQ9FoBSG3fSY5uBoMvXPqGLG3VWKaXVo0AF7?= =?us-ascii?Q?YlG3VXDiZmr36aXe/9mo9jMGZVhG/RFDIQa8RuHsTn1Yz+xC3DDCCpuQ5vRq?= =?us-ascii?Q?2SOg++HJHf8OgqQ7FzcBFn6zSBuTATS9f73DVqLbWtAyjsxlhDt1kkWsBH6k?= =?us-ascii?Q?5aHPv9QupCZWfXNBFUQJcBdwcaQlownoXdRp7Kz9io1dTOxbm7GP2lUt8aK2?= =?us-ascii?Q?tkTfUFLa7qOAbzGVmnYx+GHRXktHDpcrpKVM9P1dBfJLznIL7iHUM7tngk+A?= =?us-ascii?Q?xGDW0b0bqK/cv2DuYwng1CQN47V2CQggUHa62lNe5kvILQAqihaqlIobr7Tu?= =?us-ascii?Q?O94hs/NMeHXOEgZSJoMK2cw7UEfGejZoxElgt2I/Jyi7ZPFXNcupZT1DAq5B?= =?us-ascii?Q?G9p80bRTvF1R13CSJyDFhdWNi+WYK7zO8rI3l0mcmJO3yChqb+PeK7a3lUu+?= =?us-ascii?Q?lGTqIDuXOvY6RQJpNE0U3AP9y13W67EQCQ7INAlseaYTo0ue4z9p4c55+WEF?= =?us-ascii?Q?HTK4btQQ3lOKtKT6ER1LRz3V2UKGqQfPUfavrURWfCBceBWbiN/iWoKw3XNf?= =?us-ascii?Q?yT0yJsIlTY8clDSa/Wz8Bwip+qlwubDTsZ5bzt8KnW29xpM6CmGJta+AKTDC?= =?us-ascii?Q?V/i3pfos2VvnVvd8yU/f9PoAU9N/bXMPFmQppIAC2/c17eWVYGbAJUUXVMyn?= =?us-ascii?Q?hkUFdHnf2wrzdXihf5F/TTQ/lDNwYr+lBXWoqpManDv1kSJhSlNX/Vha6gxV?= =?us-ascii?Q?R8058TMIlsYLSaw/f5bYamQQ+oJ7rlt5tlHnSXiHRRsnehxsWB8T3j5cGFsV?= =?us-ascii?Q?MFmyyj2itjbd8/s9KMyFxa8j2Z9KDbofAuMdVyREuNFGRZtF00QxVlZHDpA?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Antispam-Message-Info: myPwZ8pez9LAhsg8+YEEN99rQ2soFFpuv+EHmDkTPmj6bJRoeNOb9aAFtOvLcY2ZxlDvR8mJBhV/oviJWhzLkyPXZcpgtmmWAGUco+lTSYshgXFyrZR8V6ewsfj3EIXYc4g5na5AIC/IJ00XSI1BUCxXvfhf8EUndMUBaQ+w8ZkZgG8+5BuAEU1DcW0Pzcs6 X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 6:Ij8uDPOrNEnM8UknTidBqohYatmgpU9Lp1aPyofdPb1wdy3jru7C0O2q8nNEA8HqEjRLId4AeD4d6V/qQRe1npgFrsj3YaFNovJIo28Aek11+Glk0hnpvgpxmGdvMQYVXT7arHos8koalZx2iHNCNQNPmFfm0CVLnhno6hqugndC6aeEvhEGdTliCXnhpt8z/d4RpllPlv0yUxFJlTlPc99r3GB+rvmWV19oqc0LIp7D5nMtv9Z+IGsptt79kOMudWdHyePbNcYW9WMlG6lMae+prpQctEYyVyt8NegOAE5Y8kH4iErx8htKey6xDl/r7I86woMoFxSfkyhRK2HuHV3XTMlIoYBLCZGhXAx0COs=; 5:HHy0WLPWa4tWjKxrH8b1JIcFENsuvLEudzcluG01G0jT2oApfiQUU4hMt76BbMl6ssC8TZduV1RSwL2Xk6O/tTN6Lg0Nkzr7MTTsX/iVC+o7+rxNVBIGtdtCFGojVtQ5QVyym362je5EUOWB/6RdrS7km+307LE3/63d4WVSewc=; 24:K1jQeK8QurQO6DkqN+0y+O/f/eF765zxP9/QO6G6X72eJG+mip2sFuW1mg2mTBOLao30A6Y9rzjYS6aaan7HUWQ9qFsOpUPjZGqL+Jknqb8=; 7:SQp3oxW5u1zyoTT7Uwa+phI+aObyySn8GMxkp2y4LItLRZDa6wCwvqVLlskQ3vJ3Na23eQEo/8w+B3v/j/+GHyL4eXMKmXCM/2CpAwKp1u4Fl7S3QOiWgMvRivYheq6D59sxu3GJ8x7IYa9/bQXWkOJF1MwalyNmaN0B0enXW/7WyLuMwWduBrAFWgZzVB40+/hnVlU2+TbExjjr8+dHBUTtdr4FIOySIZ/RbW+9yMh5L4IU9oB3WmDSkh0+gwVy SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:giynGPH+FutL1+vOLYHbaC72CCDc7q/spONo+aFhQ18yb5TjexS0YeJlnDku0OZkTvzKgRM/uuqNHvtY8tHOruH9yu9KyfcC0c+zGG+cbne8L+x8UKb0GMeUvuXoaHDXUdCG4CVpMwXLGgj1UKlIq5c7hJsKkYCKsGOWM78UkzE= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2018 10:17:26.7402 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 02cfc388-f2cb-4aec-c844-08d5880274e1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1991 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.122 Subject: [Qemu-devel] [PATCH v8 7/9] block: support BDRV_REQ_ALLOCATE in passthrough drivers 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 , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com 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" Support the flag if the underlying BDS supports it Signed-off-by: Anton Nefedov Reviewed-by: Alberto Garcia --- block/blkdebug.c | 3 ++- block/blkverify.c | 2 +- block/mirror.c | 2 +- block/quorum.c | 3 ++- block/raw-format.c | 3 ++- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/block/blkdebug.c b/block/blkdebug.c index 5897124..d46f6c9 100644 --- a/block/blkdebug.c +++ b/block/blkdebug.c @@ -400,7 +400,8 @@ static int blkdebug_open(BlockDriverState *bs, QDict *o= ptions, int flags, =20 bs->supported_write_flags =3D BDRV_REQ_FUA & bs->file->bs->supported_write_flags; - bs->supported_zero_flags =3D (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP) & + bs->supported_zero_flags =3D + (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_ALLOCATE) & bs->file->bs->supported_zero_flags; ret =3D -EINVAL; =20 diff --git a/block/blkverify.c b/block/blkverify.c index de2fdc1..03bec62 100644 --- a/block/blkverify.c +++ b/block/blkverify.c @@ -146,7 +146,7 @@ static int blkverify_open(BlockDriverState *bs, QDict *= options, int flags, s->test_file->bs->supported_write_flags; =20 bs->supported_zero_flags =3D - (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP) & + (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_ALLOCATE) & bs->file->bs->supported_zero_flags & s->test_file->bs->supported_zero_flags; =20 diff --git a/block/mirror.c b/block/mirror.c index 2fb786f..58f006f 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -1105,7 +1105,7 @@ static void mirror_top_set_supported_flags(BlockDrive= rState *bs) bs->supported_write_flags =3D BDRV_REQ_FUA & bs->backing->bs->supported_write_flags; bs->supported_zero_flags =3D - (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP) & + (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_ALLOCATE) & bs->backing->bs->supported_zero_flags; } =20 diff --git a/block/quorum.c b/block/quorum.c index dc77a23..e369e79 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -873,7 +873,8 @@ static void quorum_set_supported_flags(BlockDriverState= *bs) int i; =20 bs->supported_write_flags =3D BDRV_REQ_FUA; - bs->supported_zero_flags =3D BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP; + bs->supported_zero_flags =3D + BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_ALLOCATE; =20 for (i =3D 0; i < s->num_children; i++) { bs->supported_write_flags &=3D s->children[i]->bs->supported_write= _flags; diff --git a/block/raw-format.c b/block/raw-format.c index a378547..ca65f86 100644 --- a/block/raw-format.c +++ b/block/raw-format.c @@ -417,7 +417,8 @@ static int raw_open(BlockDriverState *bs, QDict *option= s, int flags, bs->sg =3D bs->file->bs->sg; bs->supported_write_flags =3D BDRV_REQ_FUA & bs->file->bs->supported_write_flags; - bs->supported_zero_flags =3D (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP) & + bs->supported_zero_flags =3D + (BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_ALLOCATE) & bs->file->bs->supported_zero_flags; =20 if (bs->probed && !bdrv_is_read_only(bs)) { --=20 2.7.4 From nobody Sat Oct 25 08:49:10 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520850426287740.8931982742212; Mon, 12 Mar 2018 03:27:06 -0700 (PDT) Received: from localhost ([::1]:57561 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKfR-0002VH-2t for importer@patchew.org; Mon, 12 Mar 2018 06:26:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33688) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKWO-0002pW-4t for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evKWJ-0006tB-Aa for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:36 -0400 Received: from mail-eopbgr10092.outbound.protection.outlook.com ([40.107.1.92]:46366 helo=EUR02-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 1evKWI-0006pb-Q8; Mon, 12 Mar 2018 06:17:31 -0400 Received: from xantnef-ws.sw.ru (195.214.232.6) by DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.14; Mon, 12 Mar 2018 10:17: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=kYl5FZGv2Wc/8+k5A2jwKWiKem7kPmg4TNLlKwcw+5g=; b=S8iCaxxlNM9tAXXFbKkwCWr/EmS5P/f6szXJir6j5nsk3+JWU/ZChi89j8qpRXVnBTD+0Ta5cUOzGK+DShzKQ2h5KhevxNHt3CVAU3T36HMpCzfQXtrH6v07Rh+dO5u9X/mFN9UKrvXJWRCrrNuTkht+tNVnH3R9JyHMFodhg8A= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2018 13:16:57 +0300 Message-Id: <1520849818-6915-9-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR06CA0148.eurprd06.prod.outlook.com (2603:10a6:7:16::35) To DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fa0e9c9e-485e-46c0-d494-08d58802758f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1991; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 3:mFB2kwpn9Mm+5d11bY+X2TbNLQAug2o1ZXtmoXNmSCI1YkPiL2yHdM/iSNdo9Jydg15s4sVMFqwjWmR0Iwt9tbim0IrOLUbEY6frq8r0K5UhDbrV6v7hCAX5cajmmjkcBf8mDcOR8iSsEFoLPbzno2ydemzZWcDnql2UsgvBJKIp+cszKXu4xHwmjX8n4Y07i4fLE/MD/+8nxFPH8staY076mUGfnJUXy501NjnRxPryl5OKP+ko0DH9WXGRblrn; 25:vQToHnZ084f4t2nlUy1jeU1N1P1onKqsrk9tKuzPMPUfbDQkjdZtIhrS+ElRt6aEnYFsEkymGXcDmj4ZH17Wo68nASIlwMagBlgjDqIJuJIDqgkIT7OaMMtszeLKLZfgUDBNVm2/VP0UYiaX2bhMwbx8amqC9dMI+6XW6dBM3jzBcyJSl4b/9DJoM9NLSkTMvJJsPi76gXhFYNt9PhUongi/u67xdPxFP6cx7naHBtjVF6oUvV0eq9S01jJIV/GIGGP4EdO6RYJzS+TaOYhK/f7P1iU6x7nu0QNun2DGngvWrzqP8j6V0JVzxad1yynn4xLMZQ8qAFdlRrnLY+1qpw==; 31:Hj+oXC/9ABzXKNKg0L8c5CADW0xgnCWZhoaW0blAexb5V9biLWWGwnMFlMc+8iVjyf/ssYCyZ8skVbFvORFir6DeynPJO6j6i+uluImch7dnk1mtiMK0ynprJsM149qfrx2iv8A/3ybruercZjaAZtsCwsPlye5rGG8QrLYH3fX8PUggTae+/E+LBSUNngfwNKm8jWGrpnpXjg85y9RyZR5ujWoQJ94C0v8htCSAh2c= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1991: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:4bD5AC2lZonW5RNSyhMsB0a6mHoBpIsro6sbbPzHYJzru8ImslqTmfm6qTidXD+j4bacRpgzjNnRVY0FNl3lszZi+9q40I7lr99kQu4KxlQUIb6H1u694Q4+jBnTURmYCFQPgJdwtU1rkYkWPrNQMsb6n3QnMvgk1N/Dq4jiWXyijks6dXpkZo1HGQx76idIIcC7KYf0/+H7SouxZQV6joPVNp9B6m8umi5lAQw/hOAYhjD/MpiVpUaxXztnqEVlML2Ugdi5b5e6W4yzqjadQYO1gwsLQujMK1jsVj/2EmC0MyD+ySYttsuwHsW0eindf4BmqPNM+7e8lK4JbMGToZRHAv3RjS1ehMxdy3JczVECVcmstrY3khaDFmSAW4xf+9SpYRzr6jtOPjgNgdAnre9wLzplFIQexjpqVup+3SKKFA2CFj4NfR8wRJc3uBJgFhYbXnnN0aSc84ibpgPQaRHVyg/QzbjsjS91nw8O1+Isxqn+q1H0ahe5rRLOb9+2; 4:5MlNnTtdpoiVfne7Z1pfqxH3THZdvpF90GFCs6KwR+Y97MkZiQmXwAbfOCIn0Tx2u/WP/w/S7/PS7VUepikLFWbasC8DJsbF3mjtV5qT0NbsxuWyKcDKWAHtJU7ygEw8LbVmjgJ13X/8TdQERr2jfHoUT1ONPLaN0bw5l4TyRE8dt+I0Q75Q/wfmb7lQHortaOcasuGSsnMEVT4JK7lTCe1JGF5Pj8QGXE1/QxO6f2yvJBDKoBpU+et5Dar6tdigjQPcWUosFXM0VuvM4d2Tsg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB6PR0801MB1991; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1991; X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39840400004)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(47776003)(106356001)(4326008)(81166006)(16586007)(107886003)(8676002)(69596002)(6116002)(68736007)(3846002)(105586002)(50226002)(386003)(6506007)(81156014)(8936002)(55236004)(2906002)(36756003)(478600001)(2351001)(2361001)(25786009)(316002)(59450400001)(6486002)(53416004)(76176011)(97736004)(52116002)(51416003)(66066001)(48376002)(50466002)(6916009)(6666003)(6512007)(2950100002)(5660300001)(26005)(575784001)(86362001)(53936002)(16526019)(7736002)(186003)(305945005)(21314002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1991; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR0801MB1991; 23:cTiKMaQaSmFccjEmQIOwOhS68t+kobyJk9pyG5Z?= =?us-ascii?Q?VZW0RoS+l/ACqtBkQr1iyzqYepI8+jPXnsEfXVg6glEeeGG8x1QnpGkchAPy?= =?us-ascii?Q?jkREf/1Z2ZJ1JCBna6RRXdVWzbChJaCahMXf9bbFAlWjukX/DHgCwU9g/GoB?= =?us-ascii?Q?iOl3i4ST8qPNgIETUdG93Ut30rg/bPttNObiri9Y1I2maHp9qlADKMc7sbfP?= =?us-ascii?Q?dhSBKTFB82FZNngPQQn0SQa1S0YEmz1g2NY1Qpijl9eJIErhF9mR70MvXWGK?= =?us-ascii?Q?fQxv9PlySz3EjowuMHnk/NFoEpIRKlA6ntvoyqvEmBwpPII6FgbOME8xAMD2?= =?us-ascii?Q?8kJD2RArh0v0/APVo1/9kC6wehdprFXlym1OAyu9tGLa7WLsCPlu4D/E4ekm?= =?us-ascii?Q?1oUNLomCbGFifQKWPlmnNm65TACYcJgTn5aOgzAsGocLFDsIC+YoBA5MCm5O?= =?us-ascii?Q?vxENH9uwOuNexknjwa3GYy5ORYvgZScf2Xm8mgwDQlDVjIDnzRyjhFEL9XQn?= =?us-ascii?Q?iSqcJG76K/Q2BzABKASCCLG1DncI37shxIwZAms46sDVXsWFAVJtSB7VuWag?= =?us-ascii?Q?F0GSTr0LF+T7NJhOxtu98XhowFaTiLL3MDAhDy5DvZFjFhPqAzpxqjnJlToQ?= =?us-ascii?Q?Q3OrcmxOklDuGYMWUKq5sVNrPTqBw4Sd61lZPE2zUJrUcLkRapJas1DqQEci?= =?us-ascii?Q?grBsRc7zSkhSxl+mtMRN7doZtZDBjiT3jIvFt1Q7lfOlWu/RBl5YV2rMh/4V?= =?us-ascii?Q?kR3SMBU3eZ0geC/2hSqdZRTEUXrj81cy64aswk5TdDYQ2NH+TwJKOKcaq2CK?= =?us-ascii?Q?dxRni6W3HK0oHeno14q0PwcOSfmaxwy1twfm6Ng9Zqc4dtyWjPcM3GtfzXEt?= =?us-ascii?Q?vHZGlDmdo/Xr6l4WxPZlmCeoI+1AY6YIL+4Drw8Vs+ghdyoNoQ4/GELXrcee?= =?us-ascii?Q?zEOYHOWrqE1Y2oABR8iN3sDrDiqDuC1m4DhLn4xMNOcbZpfQeIqvYEV0EMBA?= =?us-ascii?Q?hMjMm3gblCeRM0FTD8PS8CR2Uk2pf1qjlyN2zdv67nePdDiOsS790X4oSzAO?= =?us-ascii?Q?mn3u+KHOGoGXvatWOeZqXf2y3bS1Stvh+LFutYd5eheceCmfbqN+ypq+g5Ci?= =?us-ascii?Q?L+zbuunN20r4rhwORVmWvrrFZDnMypaDakySYJBlTmxsC5mHPYOvKM42TjPZ?= =?us-ascii?Q?TcDemDbGuFOK3nfLwRUZBSpx/d2VWS53UaHVwd5pFFAJcO+RW6QLrfAUgTJ0?= =?us-ascii?Q?aScm/QLvEn1XSQzJNtqKnS4Rcss4Kij3uOicrZPOkYy0X4SDfK5LDYrHb4Ju?= =?us-ascii?Q?1UQ=3D=3D?= X-Microsoft-Antispam-Message-Info: WwYjbSM2cP3QLKrMZYMSaggl4CCWpJpV/vSBmArhwuF/8skWjBsE5RNYkn9eaf+FWVUWdzYyVjso28Z7az4OGEr0OiUUJOSKZEsBUw4Tdnt91max54HPk5nLh1bxPKsNukjQrQr1Vyv26Vb5PDwnmRxCkpNGIvOtxfX4Mh1EtpsniAOIhaBU6aw3gnmiAx8U X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 6:bMoU2SLuShd71sx69S6PlaRXXkhDykZYD9A3dNTofumKiytN/pyOtOxBVGFtPLUjbda71koED3GuFnSucxlServhV9dWS0XdI+kZGi4j1li9oDxfOVkV8Cn/cyvYG+5Nd5iXGdWjs3Vc73JZUNH9xpNKgYlb4nB8rsrWaGJeTApPvAdxevfxJmsVjuZVny2/MXMCYx0gkfr6Xoy2+rknat/fRtHFbphSy8PMH00Ss21l95QS2sdoq3AnluUKnNQkyqdW63zW6FDh7N3L0W2l0gLwUwZ2meKH21zPwlP78VP9mvW9emwMmxa61ubBTyRQevPUNmPZ0XNraJiI+RtruYG8nib5AJTwxC8u0VtUEgk=; 5:keU9seCnG4XkMfrgZAMLNqPr6xhaafQAzd3AWf/31WaQTHd8KYA+5yIVq367OeftOthHWyex0T+HXoMa1sKw3mXlg7MhoIRIKPQ2d+iRewPHAtYRiulhtsFJPCPHB8OsqUBZMLCfFNuMK7CImOJkWoQUWE6xyixd1n8WOYh920k=; 24:zedr6xABweeuCxzC84jiWZGKZudHk5FqGIBXQEJXm2FjpLB61WDSCHqn0jUsJi+FZdUHHmsFV/kOxgbzprsRpCnyzAhZLFaLj7fxiTe4z0w=; 7:38qNPS3fqmWgwOPJGx3l01WPQq2L8eP6587We9+ZWe8DwT/H9aCpAQuTraCOXclNh8D1v5Iv73KIBGWrB5aNynYFigGmjEtP8p666HrdjVUqYoAWdrqD5vd4iAKk0na/tTFzN5VdWfRmMYRWmJRcKqpO2LLqEIGmuh9XVmocFrw02tkTwgm+lSXuhkTvEUzjeZb+ThBSJbGJ6tw4SgQacwE7oDmyvw5sB55+CroMYgLZI2T0Aee52a+zpyFiIL2g SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:T7lcjiA1/Gxa/kmfJp8gRmqZdILDdR1Fw1ERwpNwLzIjTrwa9sUXR/Qn0e00qyvijQBmhzqp/Qf/BDO0xLBbjihmWqeayMnVpmbpaRQh9WPKiXLDuTuShBi9HSdnveJNJ7REA9Fu4AWdJfPpx0B9cDT16/BIcDyQXjM9aiiGPJw= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2018 10:17:27.8653 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fa0e9c9e-485e-46c0-d494-08d58802758f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1991 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.92 Subject: [Qemu-devel] [PATCH v8 8/9] qcow2: skip writing zero buffers to empty COW areas 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 , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com 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" If COW areas of the newly allocated clusters are zeroes on the backing imag= e, efficient bdrv_write_zeroes(flags=3DBDRV_REQ_ALLOCATE) can be used on the w= hole cluster instead of writing explicit zero buffers later in perform_cow(). iotest 060: write to the discarded cluster does not trigger COW anymore. Use a backing image instead. Signed-off-by: Anton Nefedov --- qapi/block-core.json | 4 ++- block/qcow2.h | 6 ++++ block/qcow2-cluster.c | 2 +- block/qcow2.c | 79 ++++++++++++++++++++++++++++++++++++++++++= ++-- block/trace-events | 1 + tests/qemu-iotests/060 | 26 +++++++++------ tests/qemu-iotests/060.out | 5 ++- 7 files changed, 108 insertions(+), 15 deletions(-) diff --git a/qapi/block-core.json b/qapi/block-core.json index 00475f0..da61a0d 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -2584,6 +2584,8 @@ # # @cor_write: a write due to copy-on-read (since 2.11) # +# @cluster_alloc_space: an allocation of a cluster file space (since 2.12) +# # Since: 2.9 ## { 'enum': 'BlkdebugEvent', 'prefix': 'BLKDBG', @@ -2602,7 +2604,7 @@ 'pwritev_rmw_tail', 'pwritev_rmw_after_tail', 'pwritev', 'pwritev_zero', 'pwritev_done', 'empty_image_prepare', 'l1_shrink_write_table', 'l1_shrink_free_l2_clusters', - 'cor_write'] } + 'cor_write', 'cluster_alloc_space'] } =20 ## # @BlkdebugInjectErrorOptions: diff --git a/block/qcow2.h b/block/qcow2.h index 1a84cc7..2cf7dfd 100644 --- a/block/qcow2.h +++ b/block/qcow2.h @@ -379,6 +379,12 @@ typedef struct QCowL2Meta Qcow2COWRegion cow_end; =20 /** + * Indicates that COW regions are already handled and do not require + * any more processing. + */ + bool skip_cow; + + /** * The I/O vector with the data from the actual guest write request. * If non-NULL, this is meant to be merged together with the data * from @cow_start and @cow_end into one single write operation. diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c index 98908c4..0624d65 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c @@ -805,7 +805,7 @@ static int perform_cow(BlockDriverState *bs, QCowL2Meta= *m) assert(start->offset + start->nb_bytes <=3D end->offset); assert(!m->data_qiov || m->data_qiov->size =3D=3D data_bytes); =20 - if (start->nb_bytes =3D=3D 0 && end->nb_bytes =3D=3D 0) { + if ((start->nb_bytes =3D=3D 0 && end->nb_bytes =3D=3D 0) || m->skip_co= w) { return 0; } =20 diff --git a/block/qcow2.c b/block/qcow2.c index 071dc4d..2b0ec3c 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -1866,6 +1866,11 @@ static bool merge_cow(uint64_t offset, unsigned byte= s, continue; } =20 + /* If COW regions are handled already, skip this too */ + if (m->skip_cow) { + continue; + } + /* The data (middle) region must be immediately after the * start region */ if (l2meta_cow_start(m) + m->cow_start.nb_bytes !=3D offset) { @@ -1891,6 +1896,67 @@ static bool merge_cow(uint64_t offset, unsigned byte= s, return false; } =20 +static bool is_unallocated(BlockDriverState *bs, int64_t offset, int64_t b= ytes) +{ + int64_t nr; + return !bytes || + (!bdrv_is_allocated_above(bs, NULL, offset, bytes, &nr) && nr =3D= =3D bytes); +} + +static bool is_zero_cow(BlockDriverState *bs, QCowL2Meta *m) +{ + /* content with false negatives, giving is_allocated() is faster than + * a proper zero detection with possible actual image seeks, which is + * performed by is_zero() */ + return is_unallocated(bs, m->offset + m->cow_start.offset, + m->cow_start.nb_bytes) && + is_unallocated(bs, m->offset + m->cow_end.offset, + m->cow_end.nb_bytes); +} + +static int handle_alloc_space(BlockDriverState *bs, QCowL2Meta *l2meta) +{ + BDRVQcow2State *s =3D bs->opaque; + QCowL2Meta *m; + + if (!(bs->file->bs->supported_zero_flags & BDRV_REQ_ALLOCATE)) { + return 0; + } + + if (bs->encrypted) { + return 0; + } + + for (m =3D l2meta; m !=3D NULL; m =3D m->next) { + int ret; + + if (!m->cow_start.nb_bytes && !m->cow_end.nb_bytes) { + continue; + } + + if (!is_zero_cow(bs, m)) { + continue; + } + + BLKDBG_EVENT(bs->file, BLKDBG_CLUSTER_ALLOC_SPACE); + /* instead of writing zero COW buffers, + efficiently zero out the whole clusters */ + ret =3D bdrv_co_pwrite_zeroes(bs->file, m->alloc_offset, + m->nb_clusters * s->cluster_size, + BDRV_REQ_ALLOCATE); + if (ret < 0) { + if (ret !=3D -ENOTSUP && ret !=3D -EAGAIN) { + return ret; + } + continue; + } + + trace_qcow2_skip_cow(qemu_coroutine_self(), m->offset, m->nb_clust= ers); + m->skip_cow =3D true; + } + return 0; +} + static coroutine_fn int qcow2_co_pwritev(BlockDriverState *bs, uint64_t of= fset, uint64_t bytes, QEMUIOVector *qio= v, int flags) @@ -1973,24 +2039,33 @@ static coroutine_fn int qcow2_co_pwritev(BlockDrive= rState *bs, uint64_t offset, goto fail; } =20 + qemu_co_mutex_unlock(&s->lock); + + ret =3D handle_alloc_space(bs, l2meta); + if (ret < 0) { + qemu_co_mutex_lock(&s->lock); + goto fail; + } + /* If we need to do COW, check if it's possible to merge the * writing of the guest data together with that of the COW regions. * If it's not possible (or not necessary) then write the * guest data now. */ if (!merge_cow(offset, cur_bytes, &hd_qiov, l2meta)) { - qemu_co_mutex_unlock(&s->lock); BLKDBG_EVENT(bs->file, BLKDBG_WRITE_AIO); trace_qcow2_writev_data(qemu_coroutine_self(), cluster_offset + offset_in_cluster); ret =3D bdrv_co_pwritev(bs->file, cluster_offset + offset_in_cluster, cur_bytes, &hd_qiov, 0); - qemu_co_mutex_lock(&s->lock); if (ret < 0) { + qemu_co_mutex_lock(&s->lock); goto fail; } } =20 + qemu_co_mutex_lock(&s->lock); + while (l2meta !=3D NULL) { QCowL2Meta *next; =20 diff --git a/block/trace-events b/block/trace-events index 02dd80f..2045ac9 100644 --- a/block/trace-events +++ b/block/trace-events @@ -61,6 +61,7 @@ qcow2_writev_done_part(void *co, int cur_bytes) "co %p cu= r_bytes %d" qcow2_writev_data(void *co, uint64_t offset) "co %p offset 0x%" PRIx64 qcow2_pwrite_zeroes_start_req(void *co, int64_t offset, int count) "co %p = offset 0x%" PRIx64 " count %d" qcow2_pwrite_zeroes(void *co, int64_t offset, int count) "co %p offset 0x%= " PRIx64 " count %d" +qcow2_skip_cow(void *co, uint64_t offset, int nb_clusters) "co %p offset 0= x%" PRIx64 " nb_clusters %d" =20 # block/qcow2-cluster.c qcow2_alloc_clusters_offset(void *co, uint64_t offset, int bytes) "co %p o= ffset 0x%" PRIx64 " bytes %d" diff --git a/tests/qemu-iotests/060 b/tests/qemu-iotests/060 index 6c7407f..e6ed8b2 100755 --- a/tests/qemu-iotests/060 +++ b/tests/qemu-iotests/060 @@ -143,27 +143,33 @@ $QEMU_IO -c "$OPEN_RO" -c "read -P 1 0 512" | _filter= _qemu_io echo echo "=3D=3D=3D Testing overlap while COW is in flight =3D=3D=3D" echo +BACKING_IMG=3D$TEST_IMG.base +TEST_IMG=3D$BACKING_IMG _make_test_img 1G + +$QEMU_IO -c 'write 64k 64k' "$BACKING_IMG" | _filter_qemu_io + # compat=3D0.10 is required in order to make the following discard actually -# unallocate the sector rather than make it a zero sector - we want COW, a= fter -# all. -IMGOPTS=3D'compat=3D0.10' _make_test_img 1G +# unallocate the sector rather than make it a zero sector as we would like +# to reuse it for another guest offset +IMGOPTS=3D'compat=3D0.10' _make_test_img -b "$BACKING_IMG" 1G # Write two clusters, the second one enforces creation of an L2 table after # the first data cluster. $QEMU_IO -c 'write 0k 64k' -c 'write 512M 64k' "$TEST_IMG" | _filter_qemu_= io -# Discard the first cluster. This cluster will soon enough be reallocated = and -# used for COW. +# Discard the first cluster. This cluster will soon enough be reallocated $QEMU_IO -c 'discard 0k 64k' "$TEST_IMG" | _filter_qemu_io # Now, corrupt the image by marking the second L2 table cluster as free. poke_file "$TEST_IMG" '131084' "\x00\x00" # 0x2000c -# Start a write operation requiring COW on the image stopping it right bef= ore -# doing the read; then, trigger the corruption prevention by writing anyth= ing to -# any unallocated cluster, leading to an attempt to overwrite the second L2 +# Start a write operation requiring COW on the image; +# this write will reuse the host offset released by a previous discard. +# Stop it right before doing the read. +# Then, trigger the corruption prevention by writing anything to +# another unallocated cluster, leading to an attempt to overwrite the seco= nd L2 # table. Finally, resume the COW write and see it fail (but not crash). echo "open -o file.driver=3Dblkdebug $TEST_IMG break cow_read 0 -aio_write 0k 1k +aio_write 64k 1k wait_break 0 -write 64k 64k +write 128k 64k resume 0" | $QEMU_IO | _filter_qemu_io =20 echo diff --git a/tests/qemu-iotests/060.out b/tests/qemu-iotests/060.out index 25d5c39..00a6702 100644 --- a/tests/qemu-iotests/060.out +++ b/tests/qemu-iotests/060.out @@ -97,7 +97,10 @@ read 512/512 bytes at offset 0 =20 =3D=3D=3D Testing overlap while COW is in flight =3D=3D=3D =20 -Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 +Formatting 'TEST_DIR/t.IMGFMT.base', fmt=3DIMGFMT size=3D1073741824 +wrote 65536/65536 bytes at offset 65536 +64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 backing_fil= e=3DTEST_DIR/t.IMGFMT.base wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) wrote 65536/65536 bytes at offset 536870912 --=20 2.7.4 From nobody Sat Oct 25 08:49:10 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520850317204760.2692583123812; Mon, 12 Mar 2018 03:25:17 -0700 (PDT) Received: from localhost ([::1]:57537 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKdo-0000qf-8u for importer@patchew.org; Mon, 12 Mar 2018 06:25:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33687) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evKWO-0002pV-4p for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evKWJ-0006ur-Tu for qemu-devel@nongnu.org; Mon, 12 Mar 2018 06:17:36 -0400 Received: from mail-eopbgr10092.outbound.protection.outlook.com ([40.107.1.92]:46366 helo=EUR02-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 1evKWJ-0006pb-Ka; Mon, 12 Mar 2018 06:17:31 -0400 Received: from xantnef-ws.sw.ru (195.214.232.6) by DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.567.14; Mon, 12 Mar 2018 10:17:28 +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=3SuavverubBYMiuKWKs7v4oLZkCJfON8z+/1zkFuxYE=; b=U+RZyh7ZrgnvGz+fwUOvG7p1nHrIO9CzQjKqhUrvmZopaWbnFwxLGFfMTwRsK67GvIcxBt98zA6VpwsEDYo6FNeWKbcd0pVZHydGVOlk7/dUH90mTR1TZRaZRHxomMbp6Fz5ILqABvPx3G5/QDzUUNw9ys1aVPosxP9qTK0NIB4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; From: Anton Nefedov To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2018 13:16:58 +0300 Message-Id: <1520849818-6915-10-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1520849818-6915-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR06CA0148.eurprd06.prod.outlook.com (2603:10a6:7:16::35) To DB6PR0801MB1991.eurprd08.prod.outlook.com (2603:10a6:4:76::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 705e10cb-26d8-469e-1c2b-08d588027639 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1991; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 3:/+/kFrDO8wE202mddxebw1VrCOmUeJTqtmfDSEpP/i9iRJS53EnPLgqjb6sGW4zcDdtDwPtMdAMrsPB1I/kD9Xfivrry3bHaf+ZLWUFeRr+wAPDX0AKOJSkP7of9xxeK5Mhp4W6P9ex4hfVZOJDYfrlVR8E44HnnKfWTrPTlqI0TxI8wnszUOQINhRWEtlpgJn09CYs2c3kwAcpDqAwUpGclamjboEBxIdqxUQLTkmC3RDtLE/LNvHHwb7nhDbE1; 25:j0J1IXGdxhLjnYVygCapSspRBlWYY6xEdplbjvPUQeGbFkhO5S0UmD2KZXq5ApUuwSjXqetAhRX6eqP2cB8kO/tMJp3RqPhcQWIT8Nw9TMQikksEMIWQERbXSRrTkUztRoOz7DzNw9ZmRGVR4+VLa63kU0m5H2LjY1JTjP2U8Tav8egVJYwqUk5FwEQcMnVcRd2PY9SZec+uOuRWvRkAnfi2BIJR9mnc5MCjna+h6NTAaGLH3aCBPGbvmwMbQU4h5AWbWhem67/Q4GZGZh/HW+WqcnvYwDRzHhE/kQnOAcnkLsOsnpe2TFj20rGLnPBuI9+2JhHLP3lJT1WPkbhiUA==; 31:uJ3/BvnFb0FOJekjwDrZowe9CPnuvSYrLmeoeP4y9kNfO4UhmS+/iPwrOwtbMzb/JVaGv037S1HvqAOlhdicd5cML+uv0jpbHuqlutX/ViYD3UAj7dYXsou4rzPY0iuxLmglBuADyRmlIpNw2PkhkXWwjZx0O04L0GYCH0ANlhzyf7Q/HEh9xa8ktUQysF3Z5+z/dfbVUMNxuAsp0o4KyoOQWGva4+t6QPXG/CDY4JY= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1991: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:ncrMmOhGEokPo73sW9N0M5YACcfYtxXA0SZMgmlCiCaJdI0uL4MKBmOKqqigDAg+dkx5LlE7hGRVQgvFjMLO5iLQCVrMl8CBTO0/0E2K21p28kXpmJAKi+iLapTaN9WGLZ5JP7t1zbL2gmG2YnYur7w5nEZuH3mvkyOTTTupbojSKhkPGh/XtHo+j3xigNCf33jGLGRmMTn5OosJ/9XMks4UXoPKd2RlrNpLy8BYXCNFkeTvEfKpyc6pY8nNXD8zg6CjOpkSCPpdONUfiXaqphaYB+NE/MlFYYukcHph59/T74QkZEeQSuIFhiS8oE24YEDAdYusg0+qkftW19fFKHxfIg6s+4FcAOU7nKfLZUgEun0aZoHCmeqYQ+P0ANRFtRpxobjZhLbcVNQwQG0ee3Fg8IkHEWpfcmONVnty8w6d8Pq85oQXjn95qybzWtAgxCOQAmgDJXb0dulxa5xAWmVuaIcNWjyDCXK//xzZTTny5vskEoLjMTi/5H8uUCSM; 4:9RB2Shtrn9x7bo7AJ43Nv/sWCvxolWFoftNwR+Q60M9q6Ihaw1QivEJcMGGrbMSn+KwHSqDvvsvu9deYTqlBYiP7Fq+vxpqoMSp1gVJlsl2NGePOTAAyl1WCy6YvWs5u5TKzApIoKj4DrlAp5wkxNJc8vSh8fuusN6imAfAA97684g6LnbIoQXTb6eMGtzjkYwDxMc+KfT9rFdaO6jLbts13I05kKih4QiqdniKXkVxD7DIQ3W9wND4XFTcSAEVlWvE4VGukjiXYXRKjdL7Tmg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:DB6PR0801MB1991; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1991; X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39840400004)(366004)(346002)(39380400002)(376002)(396003)(199004)(189003)(47776003)(106356001)(4326008)(81166006)(16586007)(107886003)(8676002)(69596002)(6116002)(68736007)(3846002)(105586002)(50226002)(386003)(6506007)(81156014)(8936002)(55236004)(2906002)(36756003)(478600001)(2351001)(2361001)(25786009)(316002)(59450400001)(6486002)(53416004)(76176011)(97736004)(52116002)(51416003)(66066001)(48376002)(50466002)(6916009)(6666003)(6512007)(2950100002)(5660300001)(26005)(86362001)(53936002)(16526019)(7736002)(186003)(305945005)(21314002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1991; H:xantnef-ws.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR0801MB1991; 23:qeY8ar9HQ+JdbEBx43m23JZBAl5IK+mznxCDUBi?= =?us-ascii?Q?+kRT4DlHd1Fzh+O29hssiOvHsQDP1jdafEj14qUpbuKbak+dHOvBQei4IxUc?= =?us-ascii?Q?lqxcToHXKMIlL2g8Yu3/FMaOOJVJ53IGIQot8s5jmWmcWtZ3BnTWKI7UdXEj?= =?us-ascii?Q?Fb8rD08xEb827D4jpEInSXlmoW10sYZJP9oMwvCWxyrxiWlLCOdxNwRU9vKy?= =?us-ascii?Q?K3/a+1sSwr5DLxthPNJd9jxktSKxXb04StMBv3pWGjreWu/9VTZxgGt7FDPu?= =?us-ascii?Q?tlvOsBBtH+9aFuBJA61r6Xm7otXf18APJhrltD3iRvTctjm+zCr3c5Wp3OKq?= =?us-ascii?Q?rhh96B5pwj26IaQ664C728lRhjROjo7i2kPXYND8ivr0TmOiEgnB35Dpw+86?= =?us-ascii?Q?uI2d+ymQQBIXbMNP3efsGYB3lwn5OZv0jlcz2CRoTrWwsKMV2F91SmQCNBKo?= =?us-ascii?Q?I6Xi25e8d/XuDoxb7Fguwzq+zYpkQ+fv6w5Ep0sKEaJiR8JRtnCA19wwRSGg?= =?us-ascii?Q?gLorrJj5Txhd76Es0a827gQ95ignH9mUrcWxhJL5t9gWTlpse+iQK5J+HRc4?= =?us-ascii?Q?WL1HmCwEZAfuMYPi5YMfYCQHTWPcb3tDdkx5j1KZnDn0S9lXfF36MLFmHK7d?= =?us-ascii?Q?wJi892Z851nH6xcUwVR8q5LZR6KFoBROqP/52b23BB6yUZKfvVYUWmIlkPle?= =?us-ascii?Q?4gVxNYxir9AZs5dU/y+o4ntb4JnAJlRKSS6oC5z1SibYvPPxE6qZnhdAryMG?= =?us-ascii?Q?ZWZTgaSSIaAzuCecOxe441k89kOOxQG6iGeGGgrsy75lFgC6N2PxU5g7gBcH?= =?us-ascii?Q?iPikAa0wqKJwCI1UP+ul+GuXrXbAmBAuo2oODj0oYvZRCw5WoWPA3yNPXNui?= =?us-ascii?Q?TXX/+14yuokh/0M7hcfSuMhwRXuF24ShntoQjw5Hqo7iPRPY/NNSQxlktPPn?= =?us-ascii?Q?Yw5UP+y4Dh0nZK/Suav4hUuTW96o+g5yvRazqRnjLIt08+VzelOjEYcLadA4?= =?us-ascii?Q?OascMCl4YzveppvVoH4GyIx6NreZbba6QXsIwNSyYiDESBlR7pn+EjS7fXUn?= =?us-ascii?Q?k7FOKDn6PBk5ZyZynZ/ZueHrSVhg7wZD8B7u6DLVdAGBfQvtosna6NJHbtTU?= =?us-ascii?Q?NFVogMulOtRaY9qH5LXEmBfXPAyKtO8EUTMSt53lPcB3WL7XMlgZy6FVEhuO?= =?us-ascii?Q?8J1U9TOWSvuhkGxrvVYPCAghKk+bkJcN2LSqt29BxMeqVQa3nSsFFYkXkXSt?= =?us-ascii?Q?aot5izswziCW8ImFb3yTVS7AUy5rYBHXtvRG8F6Vi?= X-Microsoft-Antispam-Message-Info: 2ermaxT6qGyf55TuLilC9qRHTX+guUuGbmwxwTlG07zRZ+z03CL8bDu25GUDTqpYvFzo1zoKXNbjoJIx2srlv0cJXRMEwCf/11WU9iAHQWBwxbIlJJseAmGOasl665tOc0BsQMhzB327vGBF8s4hGfBl08Yx4Uq9EBWNVU/Q7qFq44WEOZDzGkJrGCIGReZ3 X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 6:VPiDn+mi2U82TWagwoTwhqj8ZN/ThUjCRiUGX7msbYpPSigFIjS0aXB3G+9cKK9SDxSplHZ5TS3ultxbvQNnDwaQ7QM0o21f5tTB2fMoaWtR1y2e2b0QQBfQcxMxkbhDrwkNXGObUx4BmdHfkI9s5PJr7kcJm5PPQyka5cA6B6l3WxfeROOwT1iYDZphVXU8WwwGumxzajhAhP8ks5buh8647iwtpoyCECG0aUfM7M7SohcCXHpJ+ZF/UCY3IuJJHBbgMBLBwltRTRtdle9dbTCcoIw2SLIc2Fo4URoGzI0KoKTEdkB+ATcNRzCADsrtjRAg1vk5oUcE0fNaRBdR1G8iHhhTTQf0Y7cZnnbM9iI=; 5:yfhlFi7ob5a9HtOcebhBr5gwFUK6YkQ6qyZhXmSaHRhxX7qJOXc98DxRJID5/Ni+zG2OKfLsjGPEKMmVR2zQsQNq1bri8gpgGD84PADHpVxjFeuBVk/DZOylWIbuV05R/dp0FWn2mA1MwIVDHOYOBSWimQBZ5fvOQkcHHWK2qV8=; 24:Gebsv4E0BE5A6NKZJzOSp5qR6SObGrNLQ1VWJSgY0buTbUQrKC60uIZGPDB1F9C6RiGMJOowQRiUbMK+PT9GQ8LfQNOipC6jli3r8DhhJEo=; 7:BwfJSONZN2qJIqHaedFgPr3hdoYZ7vGBFaT003msnm8zA7+9SlzHBqoFuc8QVrAvtaqF7I+WrjJZlc7XbZ9rTrMFxIznitsvPOShEXmxV3AtBHQ15cQy/uuXSPXP/sQKbfdMcErn3RI75MVjBm21Eitp3cWgxxZKslKcNJOO8jTb5/sKFb1vsnOgC3AV+vJKl0/8/rp+NLPBIkPV8z0PxHEgjt5VFerYpowNQ3pRHFSGLMV8yIYo1BGvIGfwzGRV SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1991; 20:j2qS+IoXlDmwSFXGh/dGbWMeDzA+v79jQjJuPNcA3/hNAV2UpB9cYoqVwA9fZcxXiuWd/xOYy/WawbrNnzVVcI7sEckgN3ZIUi7EGXOck8o4+x8CfSOIjtHJYZCQUGYtUAadT4Een5LDGNQVVFOEmuNBbjEbFRNwXiLBkYzxF/s= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2018 10:17:28.9746 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 705e10cb-26d8-469e-1c2b-08d588027639 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1991 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.92 Subject: [Qemu-devel] [PATCH v8 9/9] iotest 134: test cluster-misaligned encrypted write 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 , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, mreitz@redhat.com 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" COW (even empty/zero) areas require encryption too Signed-off-by: Anton Nefedov Reviewed-by: Eric Blake Reviewed-by: Max Reitz Reviewed-by: Alberto Garcia --- tests/qemu-iotests/134 | 9 +++++++++ tests/qemu-iotests/134.out | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/tests/qemu-iotests/134 b/tests/qemu-iotests/134 index 9914415..6083ae4 100755 --- a/tests/qemu-iotests/134 +++ b/tests/qemu-iotests/134 @@ -59,6 +59,15 @@ echo "=3D=3D reading whole image =3D=3D" $QEMU_IO --object $SECRET -c "read 0 $size" --image-opts $IMGSPEC | _filte= r_qemu_io | _filter_testdir =20 echo +echo "=3D=3D rewriting cluster part =3D=3D" +$QEMU_IO --object $SECRET -c "write -P 0xb 512 512" --image-opts $IMGSPEC = | _filter_qemu_io | _filter_testdir + +echo +echo "=3D=3D verify pattern =3D=3D" +$QEMU_IO --object $SECRET -c "read -P 0 0 512" --image-opts $IMGSPEC | _f= ilter_qemu_io | _filter_testdir +$QEMU_IO --object $SECRET -c "read -P 0xb 512 512" --image-opts $IMGSPEC = | _filter_qemu_io | _filter_testdir + +echo echo "=3D=3D rewriting whole image =3D=3D" $QEMU_IO --object $SECRET -c "write -P 0xa 0 $size" --image-opts $IMGSPEC = | _filter_qemu_io | _filter_testdir =20 diff --git a/tests/qemu-iotests/134.out b/tests/qemu-iotests/134.out index 972be49..09d46f6 100644 --- a/tests/qemu-iotests/134.out +++ b/tests/qemu-iotests/134.out @@ -5,6 +5,16 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217= 728 encryption=3Don encrypt. read 134217728/134217728 bytes at offset 0 128 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) =20 +=3D=3D rewriting cluster part =3D=3D +wrote 512/512 bytes at offset 512 +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +=3D=3D verify pattern =3D=3D +read 512/512 bytes at offset 0 +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +read 512/512 bytes at offset 512 +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + =3D=3D rewriting whole image =3D=3D wrote 134217728/134217728 bytes at offset 0 128 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) --=20 2.7.4