[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Regression in xen-blkfront regarding sector sizes
Christoph Hellwig: > On Mon, Jun 24, 2024 at 04:29:15PM +0200, Jürgen Groß wrote: > >> Rusty suspects it's related to > >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/block/xen-blkfront.c?id=ba3f67c1163812b5d7ec33705c31edaa30ce6c51, > >> so I'm cc-ing people mentioned there too. > > > > I think the call of blkif_set_queue_limits() in this patch should NOT > > precede > > setting of info->sector_size and info->physical_sector_size, as those are > > needed by blkif_set_queue_limits(). > > Yes. Something like the patch below should fix it. We could also stop > passing sector_size and physіcal_sector_size to xlvbd_alloc_gendisk to > clean things up a bit more. > > diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c > index fd7c0ff2139cee..9f3d68044f8882 100644 > --- a/drivers/block/xen-blkfront.c > +++ b/drivers/block/xen-blkfront.c > @@ -1133,6 +1133,8 @@ static int xlvbd_alloc_gendisk(blkif_sector_t capacity, > if (err) > goto out_release_minors; > > + info->sector_size = sector_size; > + info->physical_sector_size = physical_sector_size; > blkif_set_queue_limits(info, &lim); > gd = blk_mq_alloc_disk(&info->tag_set, &lim, info); > if (IS_ERR(gd)) { > @@ -1159,8 +1161,6 @@ static int xlvbd_alloc_gendisk(blkif_sector_t capacity, > > info->rq = gd->queue; > info->gd = gd; > - info->sector_size = sector_size; > - info->physical_sector_size = physical_sector_size; > > xlvbd_flush(info); > > > With this patch applied on top of v6.9.4, I get the correct logical/physical block sizes and the issue is fixed. Thank you! Rusty
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |