diff mbox series

[v2] block/file-posix: fix update_zones_wp() caller

Message ID 20230825040556.4217-1-faithilikerun@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v2] block/file-posix: fix update_zones_wp() caller | expand

Commit Message

Sam Li Aug. 25, 2023, 4:05 a.m. UTC
When the zoned request fail, it needs to update only the wp of
the target zones for not disrupting the in-flight writes on
these other zones. The wp is updated successfully after the
request completes.

Fixed the callers with right offset and nr_zones.

Signed-off-by: Sam Li <faithilikerun@gmail.com>
---
 block/file-posix.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Sam Li Oct. 16, 2023, 2:33 p.m. UTC | #1
Sam Li <faithilikerun@gmail.com> 于2023年8月25日周五 12:06写道:
>
> When the zoned request fail, it needs to update only the wp of
> the target zones for not disrupting the in-flight writes on
> these other zones. The wp is updated successfully after the
> request completes.
>
> Fixed the callers with right offset and nr_zones.
>
> Signed-off-by: Sam Li <faithilikerun@gmail.com>
> ---
>  block/file-posix.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

Ping?

>
> diff --git a/block/file-posix.c b/block/file-posix.c
> index b16e9c21a1..55e7f06a2f 100644
> --- a/block/file-posix.c
> +++ b/block/file-posix.c
> @@ -2522,7 +2522,8 @@ out:
>          }
>      } else {
>          if (type & (QEMU_AIO_WRITE | QEMU_AIO_ZONE_APPEND)) {
> -            update_zones_wp(bs, s->fd, 0, 1);
> +            /* write and append write are not allowed to cross zone bounaries */
> +            update_zones_wp(bs, s->fd, offset, 1);
>          }
>      }
>
> @@ -3472,7 +3473,7 @@ static int coroutine_fn raw_co_zone_mgmt(BlockDriverState *bs, BlockZoneOp op,
>                          len >> BDRV_SECTOR_BITS);
>      ret = raw_thread_pool_submit(handle_aiocb_zone_mgmt, &acb);
>      if (ret != 0) {
> -        update_zones_wp(bs, s->fd, offset, i);
> +        update_zones_wp(bs, s->fd, offset, nrz);
>          error_report("ioctl %s failed %d", op_name, ret);
>          return ret;
>      }
> --
> 2.40.1
>
Stefan Hajnoczi Oct. 16, 2023, 6:01 p.m. UTC | #2
On Fri, Aug 25, 2023 at 12:05:56PM +0800, Sam Li wrote:
> When the zoned request fail, it needs to update only the wp of
> the target zones for not disrupting the in-flight writes on
> these other zones. The wp is updated successfully after the
> request completes.
> 
> Fixed the callers with right offset and nr_zones.
> 
> Signed-off-by: Sam Li <faithilikerun@gmail.com>
> ---
>  block/file-posix.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Hanna Czenczek Oct. 31, 2023, 9:24 a.m. UTC | #3
On 25.08.23 06:05, Sam Li wrote:
> When the zoned request fail, it needs to update only the wp of
> the target zones for not disrupting the in-flight writes on
> these other zones. The wp is updated successfully after the
> request completes.
>
> Fixed the callers with right offset and nr_zones.
>
> Signed-off-by: Sam Li<faithilikerun@gmail.com>
> ---
>   block/file-posix.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)

Thanks, applied to my block branch:

https://gitlab.com/hreitz/qemu/-/commits/block

(Rebased on master, and I’ve also fixed the comment to read “boundaries” 
instead of “bounaries”.  Hope that’s OK!)

Hanna
Sam Li Oct. 31, 2023, 9:25 a.m. UTC | #4
Looks good, thanks!

Hanna Czenczek <hreitz@redhat.com>于2023年10月31日 周二17:24写道:

> On 25.08.23 06:05, Sam Li wrote:
>
> When the zoned request fail, it needs to update only the wp of
> the target zones for not disrupting the in-flight writes on
> these other zones. The wp is updated successfully after the
> request completes.
>
> Fixed the callers with right offset and nr_zones.
>
> Signed-off-by: Sam Li <faithilikerun@gmail.com> <faithilikerun@gmail.com>
> ---
>  block/file-posix.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
>
> Thanks, applied to my block branch:
>
> https://gitlab.com/hreitz/qemu/-/commits/block
>
> (Rebased on master, and I’ve also fixed the comment to read “boundaries”
> instead of “bounaries”.  Hope that’s OK!)
>
>
> Hanna
>
Michael Tokarev Nov. 7, 2023, 4:31 p.m. UTC | #5
25.08.2023 07:05, Sam Li wrote:
> When the zoned request fail, it needs to update only the wp of
> the target zones for not disrupting the in-flight writes on
> these other zones. The wp is updated successfully after the
> request completes.
> 
> Fixed the callers with right offset and nr_zones.

This smells like a -stable material.  Please let me know if it is not.

Thanks!

/mjt
diff mbox series

Patch

diff --git a/block/file-posix.c b/block/file-posix.c
index b16e9c21a1..55e7f06a2f 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -2522,7 +2522,8 @@  out:
         }
     } else {
         if (type & (QEMU_AIO_WRITE | QEMU_AIO_ZONE_APPEND)) {
-            update_zones_wp(bs, s->fd, 0, 1);
+            /* write and append write are not allowed to cross zone bounaries */
+            update_zones_wp(bs, s->fd, offset, 1);
         }
     }
 
@@ -3472,7 +3473,7 @@  static int coroutine_fn raw_co_zone_mgmt(BlockDriverState *bs, BlockZoneOp op,
                         len >> BDRV_SECTOR_BITS);
     ret = raw_thread_pool_submit(handle_aiocb_zone_mgmt, &acb);
     if (ret != 0) {
-        update_zones_wp(bs, s->fd, offset, i);
+        update_zones_wp(bs, s->fd, offset, nrz);
         error_report("ioctl %s failed %d", op_name, ret);
         return ret;
     }