fsdev: Use ThrottleDirection instread of bool is_write
'bool is_write' style is obsolete from throttle framework, adapt fsdev to the new style. Cc: Greg Kurz <groug@kaod.org> Reviewed-by: Hanna Czenczek <hreitz@redhat.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> Message-Id: <20230728022006.1098509-9-pizhenwei@bytedance.com> Reviewed-by: Greg Kurz <groug@kaod.org> Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
This commit is contained in:
parent
7017313882
commit
00ea69f503
@ -94,22 +94,22 @@ void fsdev_throttle_init(FsThrottle *fst)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void coroutine_fn fsdev_co_throttle_request(FsThrottle *fst, bool is_write,
|
void coroutine_fn fsdev_co_throttle_request(FsThrottle *fst,
|
||||||
|
ThrottleDirection direction,
|
||||||
struct iovec *iov, int iovcnt)
|
struct iovec *iov, int iovcnt)
|
||||||
{
|
{
|
||||||
ThrottleDirection direction = is_write ? THROTTLE_WRITE : THROTTLE_READ;
|
assert(direction < THROTTLE_MAX);
|
||||||
|
|
||||||
if (throttle_enabled(&fst->cfg)) {
|
if (throttle_enabled(&fst->cfg)) {
|
||||||
if (throttle_schedule_timer(&fst->ts, &fst->tt, direction) ||
|
if (throttle_schedule_timer(&fst->ts, &fst->tt, direction) ||
|
||||||
!qemu_co_queue_empty(&fst->throttled_reqs[is_write])) {
|
!qemu_co_queue_empty(&fst->throttled_reqs[direction])) {
|
||||||
qemu_co_queue_wait(&fst->throttled_reqs[is_write], NULL);
|
qemu_co_queue_wait(&fst->throttled_reqs[direction], NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
throttle_account(&fst->ts, direction, iov_size(iov, iovcnt));
|
throttle_account(&fst->ts, direction, iov_size(iov, iovcnt));
|
||||||
|
|
||||||
if (!qemu_co_queue_empty(&fst->throttled_reqs[is_write]) &&
|
if (!qemu_co_queue_empty(&fst->throttled_reqs[direction]) &&
|
||||||
!throttle_schedule_timer(&fst->ts, &fst->tt, direction)) {
|
!throttle_schedule_timer(&fst->ts, &fst->tt, direction)) {
|
||||||
qemu_co_queue_next(&fst->throttled_reqs[is_write]);
|
qemu_co_queue_next(&fst->throttled_reqs[direction]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,14 +23,14 @@ typedef struct FsThrottle {
|
|||||||
ThrottleState ts;
|
ThrottleState ts;
|
||||||
ThrottleTimers tt;
|
ThrottleTimers tt;
|
||||||
ThrottleConfig cfg;
|
ThrottleConfig cfg;
|
||||||
CoQueue throttled_reqs[2];
|
CoQueue throttled_reqs[THROTTLE_MAX];
|
||||||
} FsThrottle;
|
} FsThrottle;
|
||||||
|
|
||||||
int fsdev_throttle_parse_opts(QemuOpts *, FsThrottle *, Error **);
|
int fsdev_throttle_parse_opts(QemuOpts *, FsThrottle *, Error **);
|
||||||
|
|
||||||
void fsdev_throttle_init(FsThrottle *);
|
void fsdev_throttle_init(FsThrottle *);
|
||||||
|
|
||||||
void coroutine_fn fsdev_co_throttle_request(FsThrottle *, bool ,
|
void coroutine_fn fsdev_co_throttle_request(FsThrottle *, ThrottleDirection ,
|
||||||
struct iovec *, int);
|
struct iovec *, int);
|
||||||
|
|
||||||
void fsdev_throttle_cleanup(FsThrottle *);
|
void fsdev_throttle_cleanup(FsThrottle *);
|
||||||
|
@ -252,7 +252,7 @@ int coroutine_fn v9fs_co_pwritev(V9fsPDU *pdu, V9fsFidState *fidp,
|
|||||||
if (v9fs_request_cancelled(pdu)) {
|
if (v9fs_request_cancelled(pdu)) {
|
||||||
return -EINTR;
|
return -EINTR;
|
||||||
}
|
}
|
||||||
fsdev_co_throttle_request(s->ctx.fst, true, iov, iovcnt);
|
fsdev_co_throttle_request(s->ctx.fst, THROTTLE_WRITE, iov, iovcnt);
|
||||||
v9fs_co_run_in_worker(
|
v9fs_co_run_in_worker(
|
||||||
{
|
{
|
||||||
err = s->ops->pwritev(&s->ctx, &fidp->fs, iov, iovcnt, offset);
|
err = s->ops->pwritev(&s->ctx, &fidp->fs, iov, iovcnt, offset);
|
||||||
@ -272,7 +272,7 @@ int coroutine_fn v9fs_co_preadv(V9fsPDU *pdu, V9fsFidState *fidp,
|
|||||||
if (v9fs_request_cancelled(pdu)) {
|
if (v9fs_request_cancelled(pdu)) {
|
||||||
return -EINTR;
|
return -EINTR;
|
||||||
}
|
}
|
||||||
fsdev_co_throttle_request(s->ctx.fst, false, iov, iovcnt);
|
fsdev_co_throttle_request(s->ctx.fst, THROTTLE_READ, iov, iovcnt);
|
||||||
v9fs_co_run_in_worker(
|
v9fs_co_run_in_worker(
|
||||||
{
|
{
|
||||||
err = s->ops->preadv(&s->ctx, &fidp->fs, iov, iovcnt, offset);
|
err = s->ops->preadv(&s->ctx, &fidp->fs, iov, iovcnt, offset);
|
||||||
|
Loading…
Reference in New Issue
Block a user