[PATCH] THE INITIAL VALUE OF wp_offset MAY BE NOT THE POWER OF 2

Atharva Tiwari posted 1 patch 2 weeks, 2 days ago
block/blk-zoned.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] THE INITIAL VALUE OF wp_offset MAY BE NOT THE POWER OF 2
Posted by Atharva Tiwari 2 weeks, 2 days ago
Signed-off-by: Atharva Tiwari <evepolonium@gmail.com>
---
 block/blk-zoned.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 263e28b72053..60f8bddf9295 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -1,3 +1,4 @@
+
 // SPDX-License-Identifier: GPL-2.0
 /*
  * Zoned block device handling
@@ -530,7 +531,7 @@ static struct blk_zone_wplug *disk_get_and_lock_zone_wplug(struct gendisk *disk,
 	spin_lock_init(&zwplug->lock);
 	zwplug->flags = 0;
 	zwplug->zone_no = zno;
-	zwplug->wp_offset = sector & (disk->queue->limits.chunk_sectors - 1);
+	zwplug->wp_offset = bdev_offset_from_zone_start(disk->part0, sector);
 	bio_list_init(&zwplug->bio_list);
 	INIT_WORK(&zwplug->bio_work, blk_zone_wplug_bio_work);
 	zwplug->disk = disk;
-- 
2.43.0
Re: [PATCH] THE INITIAL VALUE OF wp_offset MAY BE NOT THE POWER OF 2
Posted by Bart Van Assche 2 weeks, 2 days ago
On 12/9/24 10:23 PM, Atharva Tiwari wrote:
> @@ -530,7 +531,7 @@ static struct blk_zone_wplug *disk_get_and_lock_zone_wplug(struct gendisk *disk,
>   	spin_lock_init(&zwplug->lock);
>   	zwplug->flags = 0;
>   	zwplug->zone_no = zno;
> -	zwplug->wp_offset = sector & (disk->queue->limits.chunk_sectors - 1);
> +	zwplug->wp_offset = bdev_offset_from_zone_start(disk->part0, sector);
>   	bio_list_init(&zwplug->bio_list);
>   	INIT_WORK(&zwplug->bio_work, blk_zone_wplug_bio_work);
>   	zwplug->disk = disk;

The above looks like a duplicate of this patch:
https://lore.kernel.org/linux-block/20241107020439.1644577-1-weilongping@oppo.com/
Re: [PATCH] THE INITIAL VALUE OF wp_offset MAY BE NOT THE POWER OF 2
Posted by Johannes Thumshirn 2 weeks, 2 days ago
On 10.12.24 07:24, Atharva Tiwari wrote:
> Signed-off-by: Atharva Tiwari <evepolonium@gmail.com>
> ---

You at least need to state why.

>   block/blk-zoned.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/block/blk-zoned.c b/block/blk-zoned.c
> index 263e28b72053..60f8bddf9295 100644
> --- a/block/blk-zoned.c
> +++ b/block/blk-zoned.c
> @@ -1,3 +1,4 @@
> +
>   // SPDX-License-Identifier: GPL-2.0
>   /*
>    * Zoned block device handling
> @@ -530,7 +531,7 @@ static struct blk_zone_wplug *disk_get_and_lock_zone_wplug(struct gendisk *disk,
>   	spin_lock_init(&zwplug->lock);
>   	zwplug->flags = 0;
>   	zwplug->zone_no = zno;
> -	zwplug->wp_offset = sector & (disk->queue->limits.chunk_sectors - 1);
> +	zwplug->wp_offset = bdev_offset_from_zone_start(disk->part0, sector);
>   	bio_list_init(&zwplug->bio_list);
>   	INIT_WORK(&zwplug->bio_work, blk_zone_wplug_bio_work);
>   	zwplug->disk = disk;

Re: [PATCH] THE INITIAL VALUE OF wp_offset MAY BE NOT THE POWER OF 2
Posted by Christoph Hellwig 2 weeks, 2 days ago
On Tue, Dec 10, 2024 at 07:09:00AM +0000, Johannes Thumshirn wrote:
> On 10.12.24 07:24, Atharva Tiwari wrote:
> > Signed-off-by: Atharva Tiwari <evepolonium@gmail.com>
> > ---
> 
> You at least need to state why.

Which will be hard to prove given that we atually check that it can't
during disk registration.
Re: [PATCH] THE INITIAL VALUE OF wp_offset MAY BE NOT THE POWER OF 2
Posted by Johannes Thumshirn 2 weeks, 2 days ago
On 10.12.24 08:11, Christoph Hellwig wrote:
> On Tue, Dec 10, 2024 at 07:09:00AM +0000, Johannes Thumshirn wrote:
>> On 10.12.24 07:24, Atharva Tiwari wrote:
>>> Signed-off-by: Atharva Tiwari <evepolonium@gmail.com>
>>> ---
>>
>> You at least need to state why.
> 
> Which will be hard to prove given that we atually check that it can't
> during disk registration.
> 
> 

I know, so I wanted the explanation ;)