From nobody Tue Feb 10 01:35:55 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1688473379; cv=none; d=zohomail.com; s=zohoarc; b=iiZzy8zKTsCOqV8jwjusfvvkgA/iLeGg+9JgIm57BUHICyOxGb3c/sCppz10GW1XM91dAt2vyz8f+aLXLD9LSW41cP3PFKkOoroaNG0iyvHcIPQ1WcV58d3Wwc4cX5r0qM8rmOe/Os2n5FIIKlbe5PjFRACdhoCoYQ6OxpuniAo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1688473379; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hgWYBTc++URz0W+hLmtIO2nNo8AlYvCPUKETELAc3VA=; b=lKrKhUJ5Kkgl3n5mWSstj4yAX2ild6/XVzJfum6gePlRIvrt/z7rrp4xqKLvNsPW4VzzYT/mI6SfYkRu4wDy96JL9Av0upHHa8f8QQx7E7DS1kdKXIVrkb+GFpIOZm0RqOWWsANS6efUf/Ddguy8U1nPqQBWNdYb7R4+DiPjToc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1688473379761913.7968697687742; Tue, 4 Jul 2023 05:22:59 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.558315.872294 (Exim 4.92) (envelope-from ) id 1qGf36-0005tu-2G; Tue, 04 Jul 2023 12:22:28 +0000 Received: by outflank-mailman (output) from mailman id 558315.872294; Tue, 04 Jul 2023 12:22:28 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qGf35-0005tl-VY; Tue, 04 Jul 2023 12:22:27 +0000 Received: by outflank-mailman (input) for mailman id 558315; Tue, 04 Jul 2023 12:22:27 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1qGf35-0005t9-9N for xen-devel@lists.xenproject.org; Tue, 04 Jul 2023 12:22:27 +0000 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 6f9381a9-1a65-11ee-b237-6b7b168915f2; Tue, 04 Jul 2023 14:22:26 +0200 (CEST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id CDD3B2286C; Tue, 4 Jul 2023 12:22:25 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id BEE0C1346D; Tue, 4 Jul 2023 12:22:25 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id oTSYLgEPpGQiMAAAMHmgww (envelope-from ); Tue, 04 Jul 2023 12:22:25 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id BE7FCA076A; Tue, 4 Jul 2023 14:22:24 +0200 (CEST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 6f9381a9-1a65-11ee-b237-6b7b168915f2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1688473345; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hgWYBTc++URz0W+hLmtIO2nNo8AlYvCPUKETELAc3VA=; b=Qb8anpmyKDSQIxGdg521F20mvfMC85y7fzDTXZrkbM4kzYIjv6aKCn3+xbBD3uMQAajUVZ ugyze9xSihFwzhyBjK9gTL4nkTBbHLDd8zhmdp+o//HY5cZXbMyHPJYuKF4t+E7uXZXBWk bzG6bgm1wZDOefw3O4jnuwhDQ54k2TQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1688473345; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hgWYBTc++URz0W+hLmtIO2nNo8AlYvCPUKETELAc3VA=; b=ZR980NIdJUvOgrooVYbDv5bR5vhnyt3H0wWgJQoutm98q8+Ipj1LRpoze+6fCWg9Vd/n9b ryyZ0+WIjeGdC1DQ== From: Jan Kara To: Cc: , Jens Axboe , Christoph Hellwig , Jan Kara , xen-devel@lists.xenproject.org Subject: [PATCH 08/32] xen/blkback: Convert to blkdev_get_handle_by_dev() Date: Tue, 4 Jul 2023 14:21:35 +0200 Message-Id: <20230704122224.16257-8-jack@suse.cz> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20230629165206.383-1-jack@suse.cz> References: <20230629165206.383-1-jack@suse.cz> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=6173; i=jack@suse.cz; h=from:subject; bh=3hrSb/NISdZPkfHN0I6heP9od+4nmfsdU94X3qv9uDU=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBkpA7RR4iuVgQ5/lWBtD1QxcWJDsuRZvmWrM/HrPO3 7WExI7GJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCZKQO0QAKCRCcnaoHP2RA2cvGCA Dwim+pDfkemEhFzpm2L4wLqfBTx4bmS+KKKMfrEk8oI7WpFaN4BNg9wKzjIx9e7dom5/NTl2rlRRoq Fu5ZAdFMNskCr8HqswKb/EBn9jfGiRc0tKl9WgB5yrt1FB/Yg17cND+9wPa6KRNCcRXGqJtiw1tF32 o2xKYjfzwE4IJ2S2LNsMQgNEYShri/W2cmEZJTvP4ruTzu2fxFV4NxMshZXFRXm7S30+SKJAEIjjka HnJyzn3ca/m/XDuod5OlVaKPrQbAVvSpY2PaPTEBQcbeuhCcYet6PUb3lg/8ztrJ2754ftD7v9nQF7 U3W2HOS6k97KWMr3RtNouYeHsPNIj8 X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.cz) X-ZM-MESSAGEID: 1688473381333100003 Content-Type: text/plain; charset="utf-8" Convert xen/blkback to use blkdev_get_handle_by_dev() and pass the handle around. CC: xen-devel@lists.xenproject.org Signed-off-by: Jan Kara --- drivers/block/xen-blkback/blkback.c | 4 +-- drivers/block/xen-blkback/common.h | 4 +-- drivers/block/xen-blkback/xenbus.c | 40 +++++++++++++++-------------- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkbac= k/blkback.c index c362f4ad80ab..4defd7f387c7 100644 --- a/drivers/block/xen-blkback/blkback.c +++ b/drivers/block/xen-blkback/blkback.c @@ -465,7 +465,7 @@ static int xen_vbd_translate(struct phys_req *req, stru= ct xen_blkif *blkif, } =20 req->dev =3D vbd->pdevice; - req->bdev =3D vbd->bdev; + req->bdev =3D vbd->bdev_handle->bdev; rc =3D 0; =20 out: @@ -969,7 +969,7 @@ static int dispatch_discard_io(struct xen_blkif_ring *r= ing, int err =3D 0; int status =3D BLKIF_RSP_OKAY; struct xen_blkif *blkif =3D ring->blkif; - struct block_device *bdev =3D blkif->vbd.bdev; + struct block_device *bdev =3D blkif->vbd.bdev_handle->bdev; struct phys_req preq; =20 xen_blkif_get(blkif); diff --git a/drivers/block/xen-blkback/common.h b/drivers/block/xen-blkback= /common.h index 40f67bfc052d..5ff50e76cee5 100644 --- a/drivers/block/xen-blkback/common.h +++ b/drivers/block/xen-blkback/common.h @@ -221,7 +221,7 @@ struct xen_vbd { unsigned char type; /* phys device that this vbd maps to. */ u32 pdevice; - struct block_device *bdev; + struct bdev_handle *bdev_handle; /* Cached size parameter. */ sector_t size; unsigned int flush_support:1; @@ -360,7 +360,7 @@ struct pending_req { }; =20 =20 -#define vbd_sz(_v) bdev_nr_sectors((_v)->bdev) +#define vbd_sz(_v) bdev_nr_sectors((_v)->bdev_handle->bdev) =20 #define xen_blkif_get(_b) (atomic_inc(&(_b)->refcnt)) #define xen_blkif_put(_b) \ diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback= /xenbus.c index bb66178c432b..b67d28584c72 100644 --- a/drivers/block/xen-blkback/xenbus.c +++ b/drivers/block/xen-blkback/xenbus.c @@ -81,7 +81,7 @@ static void xen_update_blkif_status(struct xen_blkif *blk= if) int i; =20 /* Not ready to connect? */ - if (!blkif->rings || !blkif->rings[0].irq || !blkif->vbd.bdev) + if (!blkif->rings || !blkif->rings[0].irq || !blkif->vbd.bdev_handle) return; =20 /* Already connected? */ @@ -99,12 +99,13 @@ static void xen_update_blkif_status(struct xen_blkif *b= lkif) return; } =20 - err =3D sync_blockdev(blkif->vbd.bdev); + err =3D sync_blockdev(blkif->vbd.bdev_handle->bdev); if (err) { xenbus_dev_error(blkif->be->dev, err, "block flush"); return; } - invalidate_inode_pages2(blkif->vbd.bdev->bd_inode->i_mapping); + invalidate_inode_pages2( + blkif->vbd.bdev_handle->bdev->bd_inode->i_mapping); =20 for (i =3D 0; i < blkif->nr_rings; i++) { ring =3D &blkif->rings[i]; @@ -472,9 +473,9 @@ static void xenvbd_sysfs_delif(struct xenbus_device *de= v) =20 static void xen_vbd_free(struct xen_vbd *vbd) { - if (vbd->bdev) - blkdev_put(vbd->bdev, NULL); - vbd->bdev =3D NULL; + if (vbd->bdev_handle) + blkdev_handle_put(vbd->bdev_handle); + vbd->bdev_handle =3D NULL; } =20 static int xen_vbd_create(struct xen_blkif *blkif, blkif_vdev_t handle, @@ -482,7 +483,7 @@ static int xen_vbd_create(struct xen_blkif *blkif, blki= f_vdev_t handle, int cdrom) { struct xen_vbd *vbd; - struct block_device *bdev; + struct bdev_handle *bdev_handle; =20 vbd =3D &blkif->vbd; vbd->handle =3D handle; @@ -491,17 +492,17 @@ static int xen_vbd_create(struct xen_blkif *blkif, bl= kif_vdev_t handle, =20 vbd->pdevice =3D MKDEV(major, minor); =20 - bdev =3D blkdev_get_by_dev(vbd->pdevice, vbd->readonly ? + bdev_handle =3D blkdev_get_handle_by_dev(vbd->pdevice, vbd->readonly ? BLK_OPEN_READ : BLK_OPEN_WRITE, NULL, NULL); =20 - if (IS_ERR(bdev)) { + if (IS_ERR(bdev_handle)) { pr_warn("xen_vbd_create: device %08x could not be opened\n", vbd->pdevice); return -ENOENT; } =20 - vbd->bdev =3D bdev; - if (vbd->bdev->bd_disk =3D=3D NULL) { + vbd->bdev_handle =3D bdev_handle; + if (vbd->bdev_handle->bdev->bd_disk =3D=3D NULL) { pr_warn("xen_vbd_create: device %08x doesn't exist\n", vbd->pdevice); xen_vbd_free(vbd); @@ -509,14 +510,14 @@ static int xen_vbd_create(struct xen_blkif *blkif, bl= kif_vdev_t handle, } vbd->size =3D vbd_sz(vbd); =20 - if (cdrom || disk_to_cdi(vbd->bdev->bd_disk)) + if (cdrom || disk_to_cdi(vbd->bdev_handle->bdev->bd_disk)) vbd->type |=3D VDISK_CDROM; - if (vbd->bdev->bd_disk->flags & GENHD_FL_REMOVABLE) + if (vbd->bdev_handle->bdev->bd_disk->flags & GENHD_FL_REMOVABLE) vbd->type |=3D VDISK_REMOVABLE; =20 - if (bdev_write_cache(bdev)) + if (bdev_write_cache(bdev_handle->bdev)) vbd->flush_support =3D true; - if (bdev_max_secure_erase_sectors(bdev)) + if (bdev_max_secure_erase_sectors(bdev_handle->bdev)) vbd->discard_secure =3D true; =20 pr_debug("Successful creation of handle=3D%04x (dom=3D%u)\n", @@ -569,7 +570,7 @@ static void xen_blkbk_discard(struct xenbus_transaction= xbt, struct backend_info struct xen_blkif *blkif =3D be->blkif; int err; int state =3D 0; - struct block_device *bdev =3D be->blkif->vbd.bdev; + struct block_device *bdev =3D be->blkif->vbd.bdev_handle->bdev; =20 if (!xenbus_read_unsigned(dev->nodename, "discard-enable", 1)) return; @@ -930,15 +931,16 @@ static void connect(struct backend_info *be) goto abort; } err =3D xenbus_printf(xbt, dev->nodename, "sector-size", "%lu", - (unsigned long) - bdev_logical_block_size(be->blkif->vbd.bdev)); + (unsigned long)bdev_logical_block_size( + be->blkif->vbd.bdev_handle->bdev)); if (err) { xenbus_dev_fatal(dev, err, "writing %s/sector-size", dev->nodename); goto abort; } err =3D xenbus_printf(xbt, dev->nodename, "physical-sector-size", "%u", - bdev_physical_block_size(be->blkif->vbd.bdev)); + bdev_physical_block_size( + be->blkif->vbd.bdev_handle->bdev)); if (err) xenbus_dev_error(dev, err, "writing %s/physical-sector-size", dev->nodename); --=20 2.35.3