From nobody Mon Nov 10 12:49:23 2025 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1556734878; cv=none; d=zoho.com; s=zohoarc; b=QtHmvcIRiQVV3CovxCTWbWNf/J9ipxG2WykrIzRbWpPua+7LwJgMY6N8Okz+M3fje681wBAoBasD5tTc02y04QHB1g8rPdisJIt2z1bM0U6mCpl7kZzpn8C+leWsrDFa7EI+NwEg6m+tHNKD0lgw/4MzN7YCGFffPiKwe/Es6tA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556734878; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=yAyTw3ZPSaXiSS8D4mL6VTPvWr3OtM2rqBBfpDKFyPM=; b=mGHv9AadNUUDDYtjuwV1m2l8TISBZu6k7vecEAMRCyepd9q3vrJO8MzfUGGhcoSIA87GpZzX2bV5bR6bMjxboqnwU0w4rfrf6aQlAVkmDUJv2IPrqxXx9T6kC0O3sZNrJzdHZJBBaA66dhAuevFCZCG31WQAIJl6qSPuw219iW0= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1556734878333719.5516918638601; Wed, 1 May 2019 11:21:18 -0700 (PDT) Received: from localhost ([127.0.0.1]:38090 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hLtqp-0002wh-8g for importer@patchew.org; Wed, 01 May 2019 14:21:03 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45611) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hLtkc-0007NH-4u for qemu-devel@nongnu.org; Wed, 01 May 2019 14:14:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hLtkb-0002cK-4k for qemu-devel@nongnu.org; Wed, 01 May 2019 14:14:38 -0400 Received: from fanzine.igalia.com ([91.117.99.155]:38860) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hLtka-0002RH-RF; Wed, 01 May 2019 14:14:37 -0400 Received: from 87-92-6-174.bb.dnainternet.fi ([87.92.6.174] helo=perseus.local) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1hLtkH-0002EB-7K; Wed, 01 May 2019 20:14:17 +0200 Received: from berto by perseus.local with local (Exim 4.89) (envelope-from ) id 1hLtk2-0002yL-Jb; Wed, 01 May 2019 21:14:02 +0300 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=References:In-Reply-To:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=yAyTw3ZPSaXiSS8D4mL6VTPvWr3OtM2rqBBfpDKFyPM=; b=hXKrXsIdfYrQBxqOgTI4YwNzufWvVfWaiyOGUlefjkWG2awV7iFaQD+5wuRtiZT6r/LjjoMU4xrmZ2xXEDLxFLLNelZg18YR9CRS7YuSv7CyNIo5JJITvS4jLcHOcrLOfI7waTgif+hEBeG5F1DXRktpHGiATq4OZMeUhpNYS8WDSynb0GnyYE8YPZ++zv/f9tETnpFKkVqT/Ylbov0XbzjCJVwSCsxDV8wCyI5qizDFOSymBNV0L6StpoUM6CVWoO+LHYmMScf2ZIAAAm8F11KpBhZ5OaS542eKmDT0MQg2etU7uwsK9myOAQUjktxgmjEgWgjZSfW4foijHVzYnQ==; From: Alberto Garcia To: qemu-devel@nongnu.org Date: Wed, 1 May 2019 21:13:56 +0300 Message-Id: X-Mailer: git-send-email 2.11.0 In-Reply-To: References: In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 91.117.99.155 Subject: [Qemu-devel] [PATCH v2 2/5] vdi: Replace bdrv_{read, write}() with bdrv_{pread, pwrite}() 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: Kevin Wolf , Alberto Garcia , qemu-block@nongnu.org, Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" There's only a couple of bdrv_read() and bdrv_write() calls left in the vdi code, and they can be trivially replaced with the byte-based bdrv_pread() and bdrv_pwrite(). Signed-off-by: Alberto Garcia Reviewed-by: Vladimir Sementsov-Ogievskiy --- block/vdi.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/block/vdi.c b/block/vdi.c index e1c42ad732..9caeb50dd1 100644 --- a/block/vdi.c +++ b/block/vdi.c @@ -171,6 +171,8 @@ typedef struct { uint64_t unused2[7]; } QEMU_PACKED VdiHeader; =20 +QEMU_BUILD_BUG_ON(sizeof(VdiHeader) !=3D 512); + typedef struct { /* The block map entries are little endian (even in memory). */ uint32_t *bmap; @@ -384,7 +386,7 @@ static int vdi_open(BlockDriverState *bs, QDict *option= s, int flags, =20 logout("\n"); =20 - ret =3D bdrv_read(bs->file, 0, (uint8_t *)&header, 1); + ret =3D bdrv_pread(bs->file, 0, (uint8_t *)&header, sizeof(header)); if (ret < 0) { goto fail; } @@ -484,8 +486,8 @@ static int vdi_open(BlockDriverState *bs, QDict *option= s, int flags, goto fail; } =20 - ret =3D bdrv_read(bs->file, s->bmap_sector, (uint8_t *)s->bmap, - bmap_size); + ret =3D bdrv_pread(bs->file, header.offset_bmap, (uint8_t *)s->bmap, + bmap_size * SECTOR_SIZE); if (ret < 0) { goto fail_free_bmap; } @@ -704,7 +706,7 @@ nonallocating_write: assert(VDI_IS_ALLOCATED(bmap_first)); *header =3D s->header; vdi_header_to_le(header); - ret =3D bdrv_write(bs->file, 0, block, 1); + ret =3D bdrv_pwrite(bs->file, 0, block, sizeof(VdiHeader)); g_free(block); block =3D NULL; =20 @@ -722,10 +724,11 @@ nonallocating_write: base =3D ((uint8_t *)&s->bmap[0]) + bmap_first * SECTOR_SIZE; logout("will write %u block map sectors starting from entry %u\n", n_sectors, bmap_first); - ret =3D bdrv_write(bs->file, offset, base, n_sectors); + ret =3D bdrv_pwrite(bs->file, offset * SECTOR_SIZE, base, + n_sectors * SECTOR_SIZE); } =20 - return ret; + return ret < 0 ? ret : 0; } =20 static int coroutine_fn vdi_co_do_create(BlockdevCreateOptions *create_opt= ions, --=20 2.11.0