From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id C968780E7E for ; Mon, 2 Nov 2026 17:29:38 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A2HSOcw027583; Mon, 2 Nov 2026 20:28:25 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A2HSOcw027583 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="ZW6Yruwg" Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A2HSMSG027579 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 2 Nov 2026 20:28:23 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A2HSMSG027579 Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-8a065d0e9deso3054540b3a.0 for ; Mon, 02 Nov 2026 09:28:22 -0800 (PST) X-Gm-Message-State: APuU4Z9hhK2xvt5iiHFxZAzLiZbKyc/nCFqLJDWv05yjHZYr9SbP2WWQ F78UQ0d9gCXiJ+fi9ji3xzDMp6sMJfUuomg7Csybr5vSt7xfwjFBC4ycuAlc9IwG6jcKGGjHo5I 6J/XmBi8JxrV4KV8SwZlc1B1KZea06ixvEd/cSLBMegOoCvnIWQAfXA== X-Gm-Gg: AYBFou3qWj4yXiJEK2Ey9ZN3MIo0LliMxAhG1X8xPUtms8+FYu3dlzimF94wb3U/6ag u0gAAXkw3PcmGpZdCOBDkwZoAdnPsv2WdHn/mSOWumws8dtHs/GeiTCPhm+cCsoEPdEDr/VkkEi J9KGSPqpi8byKhSoma1pReg3HK1PYLAIssGi6yN8Y79Ed4gJs2AAnG1AP3j6heN1n+d9HeGkLgG N2ZcAYMpIdfnsJt9PBcJE8iTa8AGZrRcFOgvy8P58yAhWRCmHIFnfWCepvPSQ4TL0yoLtDVQgo4 kWjE2IOnIjLRCvAa838rxNj2ZzrpsCEeW8JRgdZ4wrhgZ8Y85Kt7MEl6M5HxpkHN9OP8Y0gsLW6 oDNo4Byte1YkqgvezE011qipC+1ozWShJZtSSC55VP+2nHoYv3KD0gUPl++JKv90QtmMAXUlZaU VqTaGSaOQ0FkXcKk28uZGkulxkRsdnuRE= X-Received: by 2002:a05:6a00:ab86:b0:89b:6041:2348 with SMTP id d2e1a72fcca58-8a9bdadb56emr6656065b3a.7.1793640501357; Mon, 02 Nov 2026 09:28:21 -0800 (PST) X-Received: by 2002:a05:6a00:ab86:b0:89b:6041:2348 with SMTP id d2e1a72fcca58-8a9bdadb56emr6656053b3a.7.1793640500612; Mon, 02 Nov 2026 09:28:20 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1793640500; cv=pass; d=google.com; s=arc-20260327; b=Rdc3kZpYIoIuola1v6hJbRCtQ+eGRynnu5+dtbimDl2wZN4wmRep1/zybBpAFRSB5J tNqP7feKsnOO+AiXNobp2+Vzg9Ng/zJ/cFzSzgtqMF9SUaXYgYLLiH9zof38Ud7L4p1t 91uyNcc6F+m338O1fkuqyDSC24XcMqoF4Qgdh/f0/pH8Ir2LmZTWV+VBDwQWgZMKWthV DMa9wmk7bY/w9wL2AFAjKAdTJLIXqrM7UzSc3kkuFnCs9eQpJYPKy4doljNBgZykhgOv doNf2elFNzI/QKZDyC+UmXKZ/jfU0xKNnCqIya/S9JYL285I7wOKO+/4Npltz+bXwq8K J0XQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:user-agent:date :message-id:dkim-signature; bh=ecVXbvpmpCyEdmFFOScFm7NfntiTPSxyVAIzM2ECdmg=; fh=+UVnlm/dNf/+WvMycz0js743mPMq6emmmbzJipNIlO8=; b=YEDHWWUDJ/wYCpySvYQ4UAfyOACe3ndxjzXuqtpDkjx67jd+a3CKSAAcwxBguP2GK3 04WzasSNGb+qydtB2jk+XKCgKZ+71x7U5vWlJzJfz5wqmWSffkeZe6AYgRogs5RJs8+H YTx1SGbFuBq0YBD5ylasWPku6ku1RHsJEr4GxJmTxqstG4hJUMZVAkj4TRwdKEiDZKZJ mwYNaLL2JovqjiP5fQnvfURwCnKO0kYdHDkpENeHkb486ErhnBHAckAx+INsg61E1U8E oS9jjhHWTRHYSQgucxHZ/Q/NsgIXQ73OxvJfPxxthliz/F8c05sd3KQeLbLMNhLnxCJj PdNw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=ZW6Yruwg; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 2a01:111:f403:c201::3 as permitted sender) smtp.mailfrom=alexander.ivanov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com. [2a01:111:f403:c201::3]) by mx.google.com with ESMTPS id d2e1a72fcca58-8aadd28f151si15509837b3a.262.2026.11.02.09.28.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Nov 2026 09:28:20 -0800 (PST) Received-SPF: pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 2a01:111:f403:c201::3 as permitted sender) client-ip=2a01:111:f403:c201::3; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=ZW6Yruwg; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 2a01:111:f403:c201::3 as permitted sender) smtp.mailfrom=alexander.ivanov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZloLphS2VyE8MCI/91DrI1J4Cmy8znh8j2+St+mHLa4hViGlUTeT2+i+Af6jxPBXI5gcxW7TLomyxr8GBnEphNJuUT6gbWnrVbssKsH8LRsuSYbNTUEYh/3W5DZa8tZfNVMBJhqgQmypkW2Omu9RdAInKAzZ/u3saBqhBlAAG3WZHyNVzsImOx/6ImAPNhk0w7b1/YJdqsPckf9ZQEOgkeAeiTNOfKSgdQ/rCr/qkgt1C4b6kGGBDqpoisc6/Wn77Dfb9a0CNojEVCljGokuKtb4sRXqaPYgpcECOod27HT1APl5F0BAXmk8zRz3vVOurmwsyMLT7nhviuDUJ4qwiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ecVXbvpmpCyEdmFFOScFm7NfntiTPSxyVAIzM2ECdmg=; b=R9Kz7rDDsYH8CKFYC+uG1JoLZOA4/914vjQ179GW7wBtMp5yd69YGTL52yIJ5cMmc4elcwuNOu2jfGyn6Oy1BW3KpGVO71Wdysx9FWRGjMx6Q0AwetLsmwu3MAilVTMgoha0nHFtaNepcFKNJWQnleGh2kCYdbG5zAXyD+L2rowPBivebPEOF3xnD7MvctKevWBLXJbPO8IvdqUlVY+qnHb/vMGMdP0I/H7WLDq2AWzkSk8cErPAwLHVOGYalD4/g2s8slzlHIyEPRMepsKjcIpqPmAgAmuFknZtUKgUhzBPtizW7csicUyP6tdjS17Db0jOFojw16SX8YWFwQWIhw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ecVXbvpmpCyEdmFFOScFm7NfntiTPSxyVAIzM2ECdmg=; b=ZW6Yruwgd5EHqxU5cCJjBlxYO/EW8VbX6VUPdGj3IzmOhHPrNo5QnWsp95+sKrRYfRiJuSlkh1I6pjN2Lox8RZCNDImbBS8oG0APhM1Any2dlGdS4/m5gGsMTQ1gk3y4nSJTFiqC3+z9EF/c0KwwiPINkXemgfkMrWucRu5A6sca/BtIgpbFDLKuijb42MNnY5DGeSpMbvI4xRNyft5u4gAYaWjofMrCiQoRplpJADpUb97rdrnG/qWugeqNwFO105cyuXqQ82Bf0pHp7vPBsgJPTf7Q6lezdwZDynjWfnJ/PA5y5jyCyh9FNHUOeY0biAK1l8Co9F+A5NQkshbAaw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10743.eurprd08.prod.outlook.com (2603:10a6:800:205::19) by GVXPR08MB7893.eurprd08.prod.outlook.com (2603:10a6:150:1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Mon, 2 Nov 2026 17:28:14 +0000 Received: from VI0PR08MB10743.eurprd08.prod.outlook.com ([fe80::7a7c:d078:f125:f16a]) by VI0PR08MB10743.eurprd08.prod.outlook.com ([fe80::7a7c:d078:f125:f16a%6]) with mapi id 15.21.0569.011; Mon, 2 Nov 2026 17:28:13 +0000 Message-ID: <1f77cb6d-986f-4a1b-8e2d-9527a0f46512@virtuozzo.com> Date: Mon, 2 Nov 2026 18:28:12 +0100 User-Agent: Mozilla Thunderbird To: Andrey Zhadchenko , ptikhomirov@virtuozzo.com References: <20261029140346.465768-1-andrey.zhadchenko@virtuozzo.com> <20261029140346.465768-4-andrey.zhadchenko@virtuozzo.com> Content-Language: en-US From: Alexander Ivanov In-Reply-To: <20261029140346.465768-4-andrey.zhadchenko@virtuozzo.com> X-ClientProxiedBy: VIVP296CA0128.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:359::19) To VI0PR08MB10743.eurprd08.prod.outlook.com (2603:10a6:800:205::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10743:EE_|GVXPR08MB7893:EE_ X-MS-Office365-Filtering-Correlation-Id: e03d29c5-0cbb-4001-bbeb-08df3906ac70 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|1800799024|366016|23010399003|10067099003|18002099003|22082099003|261102123227099003|56012099006|4143699003|5023799004|261026121527099003|261022115727099003|261022105027099003|261026140227099003|261009223027099003|261028144727099003|261021123027099003|260925022911599003|260925021311599003|261021121427099003|260925021911599003; X-Microsoft-Antispam-Message-Info: kx8ubxroxUSWkqWNTn32sDvZWzp43VvjOH+G4+l2qwIaMTpT5tCQRYtLV7Rc8QGCgpm+XEj/JFhjp+FgQSKpzesDLbfo1IMRAlUygvTTJOTprNVvyawbPgefIVJPvqnt3Hdx1JmSlXZJL5FPY3ymGmi3WTsivH8y23xwfi3rAnqo1AhI/xJuSJYKWi2W4/j2f5L0qnBrBMtANYeC8mU2/2zoPltAu+EyMoNG60OGniRKrLxv5hc2F/vvn3qW/NaqHz5B+83Hi4xRgcNJWp2mSlGkUFodDratpmKNM6W+TJiowy3jIcKvz17JIPQk1AQv0xPCoh2U3s3KxF0Zt2xT/vV9/cVprvRojk69TcfDq3Dv7Y/ZvEvr04ckMJMB+zy5oAuJq11nOsDrtilbDEd2HjnMQT6SXs/JBVS10bz24DEN7vP0DF4fqe8Pca9SycKXi1RUY//EoWWgf102G4Tkk5gSigEN3LZs3yGuiI9qhQqdi8Jz2s140Q68U3CACS3/DyTP5Ed17oC8WcGhP/KYSTis8DC9UXv4iEQq6wb86qkph5bPgHGf3+v+eUhekhZ1nz7VRdqjGJgbMl2WVSUbZd1HoUVurIrITPUzMEbJ1gFncWlOI9Ev8uCRkgC8zyxP X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI0PR08MB10743.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(23010399003)(10067099003)(18002099003)(22082099003)(261102123227099003)(56012099006)(4143699003)(5023799004)(261026121527099003)(261022115727099003)(261022105027099003)(261026140227099003)(261009223027099003)(261028144727099003)(261021123027099003)(260925022911599003)(260925021311599003)(261021121427099003)(260925021911599003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QjBtOUJsQkZCQjVGVXFOLzVOS1FZRUlsVlNvYk8wL2Y5RzZwUWFlS0pheFVZ?= =?utf-8?B?TGZ2eWpCRVFDVklyc0hScW9mU1E4d2kxenB2bEx3UDBqa0dUdzgyVHNPbFMv?= =?utf-8?B?SUVvNGppSUk3MSt4b04rR2VBUjRnRUtMd1IxNFVxQTdqVnhhWkpSSG9zVG4w?= =?utf-8?B?NEVhOGs2L0srNTkzMU5rbkptOXdtNWZWM2gzMmxiZnBYSVo5U1gxbG03TGpj?= =?utf-8?B?NytZbmlFVU1FcmJjSW9penVsRzBBU1hjTmY0dTNkUzFGTzZNWTAvMXBUOUY0?= =?utf-8?B?WmhUSlh0SjE5VUpweXR4YVRHV2dac2JIUm5CdXNaSWRSS1dEZkhuOW5QcVl3?= =?utf-8?B?YVlPdE50djRqTnVhS2gzNVZwZzJxeWJXS3crbEJ6RzV6MTFBVC94NjFRNm01?= =?utf-8?B?SmNJdDRUaFdMWitUL29udjVyV2JiUFdtUGpQQ1NSK28yVmRrelorNi9rRDJB?= =?utf-8?B?WnBaRE01K3duUjIweEJXallLV2VON25ETURtbDVRazl6d3RWeEZWYnd6blBz?= =?utf-8?B?QzhjUk9JZ3FoSXNxcDR3K1Q3SVlSZnlPSitJTkNYamVGbGgxVHNZWXVCTmZ3?= =?utf-8?B?S0JUNHY4UmtTUWVFSmxUR0duNDlpaDdqRGIrRmUrK1VrU0lxL0dPUnByU3RZ?= =?utf-8?B?cld4eUY4VnRJUkZZdWZaR3NtNENNdzB0am1sdmEyOTN2c1IySHB6OU5icEVO?= =?utf-8?B?TkFya0k2aGpGM1RwVTJrMkdhNUVsdnpMT1JtcGJaVXNsN0U3STMvOHdvN0dr?= =?utf-8?B?WDN6Z1Z3dThpVnBXYUNSdHZmV2JoUjk3dTRMVUdpT08zRzdqeHFpUEF6bnJE?= =?utf-8?B?a1JGQ3Y5ZUJ0SjFkSld2akVUSjFYeFJ3NjA5Qjl3bmlxS1d2aFl1cFFyMnor?= =?utf-8?B?TzhLTGFhNzkraVd5Q0g2MGd3OE01NENrclBMOWFZRHk5K0VjMFRCUzlHcDBY?= =?utf-8?B?TFg3aUpVMDNZclVabXRNaUJkTXhoelFZQjZmeVZBL2xKU3h1d002SlBqVGJP?= =?utf-8?B?c1o2ZUs1SG9SUW4vWmgyUU0xNVozcXlPc1EwWmoza21kOUhjU0ZLSGVxWXBB?= =?utf-8?B?S21aR2NqVC90ZVhESWppVzJFVW5IalFBT0gyVy83Q1ZnMlJNNWREZ2pRWmoz?= =?utf-8?B?bEU4OVVvSlZMbDVmZFZ5cHg1SFVCQzJaZE9UcUt4LzN1Z0t1NGxmajl0a1py?= =?utf-8?B?aFZhV3h3NzEwZFR2WXoxclhuTGFiZWVRUGp1WXF3T3pOTW9PRG9CWnYwWjRX?= =?utf-8?B?MDBWR3RKN0N1SXJhNzV6WjZibmNTSisxQzZ5cWF3cHIzUExvWk9RWXEwOTZT?= =?utf-8?B?TnErMmM3dllTaGFtTk5xc0dnV1ltR0xxOFRZY0wxYjZiR3EwaGR3d0I4STBG?= =?utf-8?B?T2pqNE5sOUlpR1R1ckFiK0pNa1poZFJnTXB1ay9rR2hqMTV6UmNScTJjZE5C?= =?utf-8?B?MCtodjlCMmVNRW5tZFlOZ3hraENWVjc5V1M0ck1ET0NxbXoyb2R4NVpzVlhK?= =?utf-8?B?M24rN1ZXS1JRekR5UzFoQjFJeTZQU09Yb1Y0eHhMenQ4cHZiRys3STN5L2Rp?= =?utf-8?B?a0t0WU5TVnp4UCtYMzh0RHg1OVdwbEVZTVNMUURFcWJ1N2kvd3hhL3lla3dk?= =?utf-8?B?RG9PcWYwOTZtSi9Wa1JFdlhuU0tOSVdxRlorYkZyWXpzYVlTek9mbGNZM0pq?= =?utf-8?B?VHhIakdWaDh1cSs3QVl0RXVHOUJ4MVpIU2VXT0JLbEFjMXZySXR6RzVJWGJ0?= =?utf-8?B?cUFrOW9NTkJEUEU3cC9sUnl5WHBmcThQK0RwNnl0cmJYMWZ2c1ZWT09jeGhE?= =?utf-8?B?ZDhNSFlFRFpuQ3B0ZHN2T2JlVGRnN2pmMHNobWhNeGJHdDRBMnUxSElLOVNL?= =?utf-8?B?bVFpRzEwMVhNK0NiSXc5TnpMSHRicm4wbzA5ajcwalhkemtRRGxBMHlURGEv?= =?utf-8?B?dUt5QnV1eXVoNC9UczkxcGpxVnpmTXJmbUZXRUNtVkc5dGhnN2NVZ01OVnZy?= =?utf-8?B?bFNHVEYwNW9vSW5HSnc3WnNLYlhXbnVzVHNRWit1TGtXQTNrTnZ2T0QrZWtG?= =?utf-8?B?bU9waEpoa1dBSExsYkdHZDJpSysxbmlrZ2NWaDEza2hCVkYrL3E4djIrQ05x?= =?utf-8?B?YmNwZldVaGhDU09ERS9uVHpHSjNmbWxxdUFSYkcwaEdscytYTEM2R1YrNlBT?= =?utf-8?B?R0dYaW9BKzlEUzE1N3lSSkUzM1RBdVcrUkNIbnRLUk1QdEhOOGxpRHN1RHVq?= =?utf-8?B?bldLbm1nbUhod2Yrcmt5NzZZTVZSL3Q2NDZ3L0VmbGdjL1hpWlV6WHhyNHFU?= =?utf-8?B?SmR2R0FHMHlxcWdiUmYwTTg2OHQxa01vWXlwbUE0T2ttQmE2MHRVb1h2L2RD?= =?utf-8?Q?Ii0Pqu0e3nk3Hv3Y=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: e03d29c5-0cbb-4001-bbeb-08df3906ac70 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10743.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2026 17:28:13.7480 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CPJD8lJuUfNMjAdGaWKRsDIaLCrxmYUL/7TCTihRiGmiO+JZCqSmh8Hv9gwBg4LPhIAbDVTOKplgK9hWfChuls2I+jt4YzzcHtILdvgJwXo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB7893 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 3/7] drivers/md/dm-qcow2: prepare process_one_qio() for fastpath X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org On 10/29/26 15:03, Andrey Zhadchenko wrote: > dm-qcow2 heavily relies on main kwork do_qcow2_work() being > sequential. All metadata change happens there and cannot > run in parallel. Unfortunately that caps dm-qcow2 performance. > But if the request does not require metadata changes we should > be able to immediately dispatch it. > process_one_qio() and handle_metadata() already know what to > do: just add avoid_metadata_changes() flag and return codes. Looks lake a typo, avoid_metadata_changes is not a function. > While at it, just return in handle_metadata() instead of > setting ret to 0 and jumping to if (ret < 0) label. > > Also exclude compressed clusters as there are some complications > with wpc_readers. > > https://virtuozzo.atlassian.net/browse/VSTOR-95494 > Feature: dm-qcow2: block device over QCOW2 files driver > Signed-off-by: Andrey Zhadchenko > --- > drivers/md/dm-qcow2-map.c | 35 +++++++++++++++++++++++++---------- > 1 file changed, 25 insertions(+), 10 deletions(-) > > diff --git a/drivers/md/dm-qcow2-map.c b/drivers/md/dm-qcow2-map.c > index 1023224484f5b..c5d68b6b21f12 100644 > --- a/drivers/md/dm-qcow2-map.c > +++ b/drivers/md/dm-qcow2-map.c > @@ -3534,7 +3534,7 @@ static int prepare_cluster_discard(struct qcow2 *qcow2, struct qio **qio, > } > > static int handle_metadata(struct qcow2 *qcow2, struct qio **qio, > - struct qcow2_map *map) > + struct qcow2_map *map, bool avoid_metadata_changes) > { > bool write = op_is_write((*qio)->bi_op); > int ret; > @@ -3543,15 +3543,20 @@ static int handle_metadata(struct qcow2 *qcow2, struct qio **qio, > if (ret < 0 || !*qio) /* Error or postponed */ > goto check_err; > > + if (avoid_metadata_changes && map->compressed) > + return 2; Looks like a magic constant. Maybe enum/define? > + > ret = 1; > if (unlikely(qcow2->backward_merge_in_process)) { > + if (avoid_metadata_changes) > + return 2; > /* Keep in mind the below may replace *qio */ > ret = prepare_backward_merge(qcow2, qio, map, write); > } else if (unlikely(fake_l1cow_qio(*qio)) && > (!map->clu_is_cow || (map->level & L2_LEVEL))) { > /* Nothing to COW or L1 is mapped exactly once */ > qio_endio(*qio); > - ret = 0; > + return 0; > } else if (unlikely(op_is_discard((*qio)->bi_op))) { > /* > * Discard carries no data and is advisory. If it does not > @@ -3559,13 +3564,17 @@ static int handle_metadata(struct qcow2 *qcow2, struct qio **qio, > * is not present, end early. > */ > if (qio_discard_updates_metadata(qcow2, *qio, map)) { > + if (avoid_metadata_changes) > + return 2; > ret = prepare_cluster_discard(qcow2, qio, map); > } else if (!map->data_clu_alloced || map->clu_is_cow) { > qio_endio(*qio); > - ret = 0; > + return 0; > } > } else if (write && > (!qio_is_fully_alloced(qcow2, *qio, map) || map->clu_is_cow)) { > + if (avoid_metadata_changes) > + return 2; > if (map->clu_is_cow) { > /* COW to compressed or shared with snapshot cluster */ > ret = prepare_l1l2_replace(qcow2, *qio, map); > @@ -3677,13 +3686,17 @@ static void process_read_qio(struct qcow2 *qcow2, struct qio *qio, > qio_endio(qio); > } > > -static void process_one_qio(struct qcow2 *qcow2, struct qio *qio) > +static int process_one_qio(struct qcow2 *qcow2, struct qio *qio, bool avoid_metadata_changes) > { > struct qcow2_map map = { .qcow2 = qcow2, }; > bool write; > + int ret; > > - if (!handle_metadata(qcow2, &qio, &map)) > - return; > + ret = handle_metadata(qcow2, &qio, &map, avoid_metadata_changes); > + if (!ret) > + return 0; > + else if (ret == 2) > + return 1; > > /* > * Merge machinery makes out of order merges for present > @@ -3695,7 +3708,7 @@ static void process_one_qio(struct qcow2 *qcow2, struct qio *qio) > if (unlikely(qcow2->backward_merge_in_process) && > (fake_merge_qio(qio) || qcow2_file_is_writable(qcow2))) { > submit_top_delta_read(&map, qio); > - return; > + return 0; > } > > write = op_is_write(qio->bi_op); > @@ -3703,13 +3716,13 @@ static void process_one_qio(struct qcow2 *qcow2, struct qio *qio) > /* Process discard early. Don't do COW just to discard */ > if (unlikely(op_is_discard(qio->bi_op))) { > issue_discard(&map, qio); > - return; > + return 0; > } > > if (unlikely(map.compressed)) { > /* Compressed qio never uses sub-clus */ > submit_read_compressed(&map, qio, write); > - return; > + return 0; > } > > if (!write) { > @@ -3722,6 +3735,8 @@ static void process_one_qio(struct qcow2 *qcow2, struct qio *qio) > else > perform_rw_mapped(&map, qio); > } > + > + return 0; > } > > static struct bio_vec *create_bvec_from_rq(struct request *rq) > @@ -3824,7 +3839,7 @@ static void process_deferred_qios(struct qcow2 *qcow2, struct list_head *qios) > continue; > } > > - process_one_qio(qcow2, qio); > + process_one_qio(qcow2, qio, false); > } > } > _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel