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>
master
zhenwei pi 2023-07-28 10:20:05 +08:00 committed by Hanna Czenczek
parent 7017313882
commit 00ea69f503
3 changed files with 11 additions and 11 deletions

View File

@ -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]);
} }
} }
} }

View File

@ -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 *);

View File

@ -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);