block/file-posix.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
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(-)
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
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
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
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 >
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>
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 >
© 2016 - 2024 Red Hat, Inc.