diff mbox series

THE INITIAL VALUE OF wp_offset MAY BE NOT THE POWER OF 2

Message ID 20241210062340.2386-1-evepolonium@gmail.com (mailing list archive)
State New
Headers show
Series THE INITIAL VALUE OF wp_offset MAY BE NOT THE POWER OF 2 | expand

Commit Message

Atharva Tiwari Dec. 10, 2024, 6:23 a.m. UTC
Signed-off-by: Atharva Tiwari <evepolonium@gmail.com>
---
 block/blk-zoned.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Johannes Thumshirn Dec. 10, 2024, 7:09 a.m. UTC | #1
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;
Christoph Hellwig Dec. 10, 2024, 7:11 a.m. UTC | #2
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.
Johannes Thumshirn Dec. 10, 2024, 7:13 a.m. UTC | #3
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 ;)
Bart Van Assche Dec. 10, 2024, 8:22 p.m. UTC | #4
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/
diff mbox series

Patch

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;