From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11020102.outbound.protection.outlook.com [52.101.69.102]) by lore.virtuozzo.com (Postfix) with ESMTPS id B91378017D for ; Wed, 4 Nov 2026 14:01:01 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YhIJdntNdECFmBvjxBOC393ygauwY6143WZB7+TJFfePpP0ds9Epun3rHelXbwY134JZxGVser+s6zgKmUsQ+hlvRFahkgFpKFvCsWXl2u06V6IkJomvECMBkZ57GgQ6i+o1RTS79Ud63lLH9CwHvJ8IAOlBU1f8/h2hQU7tZGt3EEJJJ8sk60qmXojygSGfGeze+dbPxeuZ2TNuiDNuW0+OMZ7AzAYPd2l3wO33SaDPGnOtjZsOHPUZlOwe/SSrPYZ+ltpFdxj0bs5KzWNR8Y0O/J1cgjzf4kgq92iP4PgNXP6HXzP48ptaiAffCt+lRhvXeKzqG1gKMsRPdsHMUg== 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=0vemEezfS4bH4aa+hiZphpWmuVsLbUPo1LVk8f+M2O8=; b=f/U2ZtELoywsf7A+156XUT6W/+X0nWpF3z4kAWOXp9hV33lx8BLGiTaO4IqGOxo13/kpbvPdOAlM+6Je9KtZtwq0XaWxINyQsArw90d6ma60uE+CG+GfG9EgS4PkjI9wLbg3JXTkfkC+KcbjULjizs8tCDX5SpOz+ju57VXEUknz6z6zXBb8LxXYapD7ljNmEsn7soxXg/iD7gGhtCEyN0XfnMG2FWIGZ00sNrvs04RJ3sT3Xka0uiJzKi+XGtdj35ib/ga9G6Wyn8ek74AsN+fMAIoakfU/DoHgATpnUEu7vuSbm5QzWs9OWACKxGZdNW8VhAPrPzCladbhCWNZaA== 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=0vemEezfS4bH4aa+hiZphpWmuVsLbUPo1LVk8f+M2O8=; b=R67veUdWD0d8xjztrA8MPe8NN0hDFeL0qD8PNki2OPIerW8TNug82ECq5HAc95CaMIN7CUnwkg0EmQj2ganoHM5TOUrRyS9OUy2YlDNd3uDbaTupOynZkCJkfu0DYvcPBFGELQuhbTD/7vLTi8l9atCRGAp0CUpzH3eSiPkdm7KHaEVgeBaIyoaDhqYqzuyFKVozejZ3dl3qN5rebKclAefl8/+vZcRtgezvUtQ43rd1JuDR/D9k+w/ytjJV4iNqdj8XjSIenUgOcXi+6qzPfwzw+gs8iutLS5FSr/sjaXwy44GmJJMnfXpPtsnmo4V4kXVsduqvvZkRyYlX341USA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by DU0PR08MB9797.eurprd08.prod.outlook.com (2603:10a6:10:446::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.592.9; Wed, 4 Nov 2026 14:00:57 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0569.011; Wed, 4 Nov 2026 14:00:57 +0000 Message-ID: Date: Wed, 4 Nov 2026 16:00:55 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH hci-dev 0/6] block, scsi-disk: honour a size change on child replacement #VSTOR-130961 To: "Denis V. Lunev" Cc: svt-core@virtuozzo.com References: <20261104134539.1519657-1-den@openvz.org> Content-Language: en-US From: Andrey Drobyshev In-Reply-To: <20261104134539.1519657-1-den@openvz.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR4P281CA0239.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e9::16) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DU0PR08MB9797:EE_ X-MS-Office365-Filtering-Correlation-Id: 3f4c05ea-e8d9-47a4-5ba6-08df3a7c0ccd X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|366016|1800799024|5113699003|10067099003|18002099003|22082099003|261022115727099003|56012099006|261022075727099003|261022105027099003|261102123227099003|261009223027099003|261102130727099003|261026140227099003|261026135527099003|261028144727099003|261026121527099003|261021123027099003|261021121427099003; X-Microsoft-Antispam-Message-Info: q5LuRaGQsTpzFp+ET2TYUdar5GcNEEheyNJ/SHrp4IvyxkHubTfj5bd8uyEWr5QyWlLOBL8urrc3A2W4ywZHuRm1Tc9EPQtuLG7iFsMB3U525Iwem5PXOt45/RzchClHV+G8TG/nFxiJt2LwWXoL9KlP5yKNidOVnTklJt0EX9xoOMrUdtQL+hH8ZarKPnpL/kRMpwCLy4Sz8UjFYFjG2tuiz4gzSRR5HOp+0cSujvdvl0mVUF+gQfV+p7q/zHK0UZtKMlGlOYmn439+UTbtxNnNgY3yRkqTj7K6XlmOI3Ak61YDJsWESG/rZYs7ZNNBFo1OpIqtF286wwqM4WaHDqkmoKkpB+MsoZR8e0RI50zuufrjIadjFECCdnwkLNj9WUxMnwC0HYwXV1nyjeShl9SisL/m7Za/i2kx+Fd4iI7qeqw+EljMlOMtCfp3ndxCMMXNbNWITL5gR5fJFkBjqT+5ZjcIKBhmQqm0fjZtHxqv3OImK4ZhgjPyKpm42XQW3lar/mrK5d8JctSF7zaLpnDMqdAgIKup++uNu/Punxy/m54JdNTv9XItZ+k901N64HO/aFI4j3+Uy9iZlwjuPpYuVdP9bRBa76BnhZth8U5NmKPXj+NUcKWhpnXG7OOIAv+cbYJRRNjgB2x8RmWjAZaoeYHyDi3Z+EqVSXT3Kfw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(366016)(1800799024)(5113699003)(10067099003)(18002099003)(22082099003)(261022115727099003)(56012099006)(261022075727099003)(261022105027099003)(261102123227099003)(261009223027099003)(261102130727099003)(261026140227099003)(261026135527099003)(261028144727099003)(261026121527099003)(261021123027099003)(261021121427099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q2ZJeW5wekJHYTJlZ0dVSEtKYjUxUjRTc3ZoU284QUlpQWNyU1RrZUY4akZa?= =?utf-8?B?a2I3L3lUbndMeTI0aHNCYWJWYmRrWlp3RC8vYWhiMDk1OENkNCs1WHFIY2NO?= =?utf-8?B?c3c0emhaOXNRUEFHQmpnREd5WWdQVWs0ZVd5bDlMY1NDM2tuYkE1Yjd4WjE4?= =?utf-8?B?azJxZFE3VE5WS0hWNTJKMFRoczR4NThDM1d6R0xQaHowUFpiR0pKRGZWNkNV?= =?utf-8?B?WTVvYU5yYW1vSjB3RCtmTTJoWTBDRFl2b0d5L2UxZnU3RlVDdFZlK0k4U0ZC?= =?utf-8?B?REpma3dRL0poYzBKQ09tTWJJUzNuYTh2bkx2MVJHQ3hoK3EyRFZhZEk0dG8w?= =?utf-8?B?TjQ1eWRsYy9xUmVWTkNMWkw2enNnekVQS2dtZm1qWkpVOVVLaDFFY2NzL21H?= =?utf-8?B?VXdYVWdlQ1Z1Qk1FZDJjam1TWXRNODJuWlVKSjU3emNwbzd0bC83WTg2KzAz?= =?utf-8?B?WFVBQWRLaWhlWjErOVJRZFZrbHhtSlR4S0VEUkhlY1hlMkZnTU9lR1loSXJR?= =?utf-8?B?a01kcUNkTURhMlpxRlNQUXdQN3doSDRiRXJSejY2RUdJelltOHpCbWlhOEVU?= =?utf-8?B?Y0xMZm9JTHRncGdhSHFkL1MwM2dhSkM5MWRVYVRSYXFPRGdCWlVEeDhmbG1F?= =?utf-8?B?bFpWWGpnaVVJeTRMbXN5UzAzYTFlK0w3Skwvd3VmbFNrclN4NHRHWFF2ZUUz?= =?utf-8?B?NTdsSzBHOFAvY0w0ZGFsQ256SnNZbytRZ1Rld3BXRFc4WmhmK3o1STQ3bVdM?= =?utf-8?B?aGtub0oveStMaTF4cEU1bXZEYkl2NjZabjVGeHltOTVhWklvdzRSd0NZKzlE?= =?utf-8?B?UFZKZ2FzcW5RWjNoUHR2a3RrRXZtdmprUE83NENHelVMVXhYRmtQaW95WEpJ?= =?utf-8?B?ZXJBcXR0UkpDQy9IZTFUZEJUUmg5dGhxZUlwRDc4UitndE96MlhpRmNlK29y?= =?utf-8?B?M3htbGlpYTZZVUg0ZkROcjlKZUI2UndBaVVsYW9pV01EWElSa1FLb3dLdU4y?= =?utf-8?B?ZVMrYUVnY2luQWFWWEFLZnR5NUorRXB4c2ZpZXRwWTlsQmVhanRWVEZOTWF3?= =?utf-8?B?N1h6UEM0VU5CejZEVk1ocE82TlV3ek02U2U1ZXAzUWswdmRXRER0WkZJTFBp?= =?utf-8?B?dkdPcXRodnRhNVJPUG5qeG04TkpxUG05eWdVNm1DS2hsN2ZaZExIeWplZTFl?= =?utf-8?B?cnVsRmQ1enJVWGE5V1Y5R2ZESkRjNTJPMlhTS3hkWERaWmVjSFlVUDkzVThv?= =?utf-8?B?VDhDQXJ1VHNBbVFXWHV4dFhvdTFiZlpXYjhtNkwrbDQzS0hFaDNxQXpRdlUw?= =?utf-8?B?Y0JKZjNBVU9ZUThKVW5aTXFtQWNjVDhkSTdKMDdhVzFnWkFtZTJzMG9ET09I?= =?utf-8?B?MFRVSlp3eSs3aGVva2U2UWxENFhPUXdvckF2U3QvQW1CKzV0TGtKNnJhanB2?= =?utf-8?B?VzEwbDdvblZEU01nQ0JOdGRBalNiWEVEaTZPbkhrSjlEZHRIK1J0NFhJNTZi?= =?utf-8?B?WU1RTjYva0JaVXVDTEc0bExtaW9DSkhyWklBYUtUUEJqZWdGcmVtaXRtbXhq?= =?utf-8?B?ek1Yc0hHbE94eXhTKyt0a2dQMEVQQmZVdzFuNzQrQzh5Qm43Q0NnTDdyYnA2?= =?utf-8?B?ZXdLWE1vVnVIR0pQa2I5Y2U2YjJWVDc3c2xuN1F0Vkg5V1lTT0V2NmVzODNO?= =?utf-8?B?a0t6amw4ZnhFQm9JVjNaVDlyWW5kTFhmbnBJeEdDTnkzUzBkMVVkSkFCYXNU?= =?utf-8?B?OTZHYUdBZ3J1c3hqRitpNXZxSlpObktScEhyMloyWEtUNFBIbGRkc3N6ekVa?= =?utf-8?B?M3ovSzk5aVZtQXM3ODhXa3VxNWF5VXhlU0tvNXZWbTloOGNCYURkUzAyZnhD?= =?utf-8?B?c0xhTWJuUy9WSXRIaWNLb3hQOWJSNGJqNm9qbWd6OW0xVTBqdjllSVZvSVRt?= =?utf-8?B?UUplSlpiNlVwRTBMZEdMNEVBcU1ZRHR4UFRZZVN4VExtZHpQRVZGdUJqRWQx?= =?utf-8?B?b0JiR08zdmFMN013VGpLbk9naEpzL1NrNDY5Vm1hTldtVzNDelR0czRLUVRF?= =?utf-8?B?R01xczlsc1hBSlVCS0FLTEVHM0JtbHVETmltNit4NzBBcy9INWRONXROZk95?= =?utf-8?B?M01NcWJnMnMzTk91bUJEZGUvNEhWNk82ZlVjb09kVFlCcTE3dUIwYXVJNVp0?= =?utf-8?B?SWRmTW5Zcm93VVppUkU2dXQ4Vk1jSGhIMVpDVmZuaEJ6L0o1M0tTTTE2QVBZ?= =?utf-8?B?VWdRYUNaOFplUmIvMkRUTGlpWmJFaDR0dmExc243Z0d1SUFubkhhZ0tENVhu?= =?utf-8?B?aDU4OVZhR3FEZVErRFE2Nld1OWZReGxZbnlvOXliR2FsOEE2UXZiQkw1ZkJ6?= =?utf-8?Q?cl2bCOo/8egvCaVA=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f4c05ea-e8d9-47a4-5ba6-08df3a7c0ccd X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2026 14:00:57.6858 (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: P5JuE7DrQzutuqMOGrxVMwlJFTzcCzBebojBBSzO6V1C1T3Qyd7V0tr+GmUhWmtfZHSuPz3EJdZH29bvXr5eK8JyEyJY5uHHJ/8i2Q0GLZ4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9797 On 11/4/26 3:45 PM, Denis V. Lunev wrote: > This is the QEMU side of VSTOR-130961. disk_replace puts the real image > under the device with vz-x-blockdev-replace, which ends up in > bdrv_replace_child_bs(), and that swaps the node a BdrvChild points to > without telling the parent anything about it. If the placeholder had a > different size, the device never learns about it. > > scsi-disk is the one really hurt by this. check_lba_range() validates > every guest request against SCSIDevice.max_lba, filled in by > scsi_disk_reset() and updated only by the READ CAPACITY(10) and (16) > handlers, which a migrated guest never reissues. Every request past the > end of the old node is refused with ILLEGAL REQUEST / LOGICAL BLOCK > ADDRESS OUT OF RANGE for the whole life of the device, which Linux turns > into EREMOTEIO. It is silent on the host: no BLOCK_IO_ERROR event, and > io-status stays 'ok'. This is ASUP-3466, ACSSP-965 and ASUP-3678. > > Upstream merged the series as 8b267376df8..28fafb3147f, from > <20260812121500.1034178-1-den@openvz.org>. Differences: > > - Patch 1 is Fiona's 08736e7584c, which exports > bdrv_co_parent_cb_resize(); our tree predates it. > - Patch 2: our bdrv_replace_child_bs() only adds its steps to the > caller's transaction, under the graph write lock, so the length check > and the notification move to a .commit action. Reading both lengths > there also covers Kevin's review remark that the upstream version reads > the old length before draining. His other remark, notifying only the > replaced BdrvChild, will come with the upstream follow-up. > - Patch 6 is new: it covers vz-x-blockdev-replace, the path disk_replace > takes, which the upstream test does not. > > Tested on dev-cl04: without patches 1-3 the qtest fails at both the > qom-set and the vz-x-blockdev-replace step with ILLEGAL REQUEST; with > them it passes. qos-test quick passes; iotests -g quick for qcow2 and raw > give the same result with and without the series. > > Denis V. Lunev (5): > block: notify the parent when a replaced child has a different size > #VSTOR-130961 > scsi-disk: refresh the cached capacity from the resize callback > #VSTOR-130961 > tests/qtest/virtio-scsi: cover a replacement that changes the size > #VSTOR-130961 > tests/qemu-iotests/qom-set-drive: replace with a differently sized > node #VSTOR-130961 > tests/qtest/virtio-scsi: cover vz-x-blockdev-replace changing the size > #VSTOR-130961 > > Fiona Ebner (1): > block: make bdrv_co_parent_cb_resize() a proper IO API function > #VSTOR-130961 > > block.c | 27 +++++++ > block/io.c | 9 +-- > hw/scsi/scsi-disk.c | 16 +++- > include/block/block_int-io.h | 9 +++ > tests/qemu-iotests/tests/qom-set-drive | 14 +++- > tests/qemu-iotests/tests/qom-set-drive.out | 2 + > tests/qtest/virtio-scsi-test.c | 85 ++++++++++++++++++++++ > 7 files changed, 149 insertions(+), 13 deletions(-) > > > base-commit: 2ac36f063996449791d0db63fc2c9a67864631d1 Ack Applied to hci-dev