diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 7bab4bebe..fc85929f3 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -1478,6 +1478,17 @@ spdk_bdev_qos_destroy(struct spdk_bdev *bdev) return 0; } +static void +_spdk_bdev_io_stat_add(struct spdk_bdev_io_stat *total, struct spdk_bdev_io_stat *add) +{ + total->bytes_read += add->bytes_read; + total->num_read_ops += add->num_read_ops; + total->bytes_written += add->bytes_written; + total->num_write_ops += add->num_write_ops; + total->read_latency_ticks += add->read_latency_ticks; + total->write_latency_ticks += add->write_latency_ticks; +} + static void spdk_bdev_channel_destroy(void *io_device, void *ctx_buf) { @@ -2269,13 +2280,7 @@ _spdk_bdev_get_each_channel_stat(struct spdk_io_channel_iter *i) struct spdk_io_channel *ch = spdk_io_channel_iter_get_channel(i); struct spdk_bdev_channel *channel = spdk_io_channel_get_ctx(ch); - bdev_iostat_ctx->stat->bytes_read += channel->stat.bytes_read; - bdev_iostat_ctx->stat->num_read_ops += channel->stat.num_read_ops; - bdev_iostat_ctx->stat->bytes_written += channel->stat.bytes_written; - bdev_iostat_ctx->stat->num_write_ops += channel->stat.num_write_ops; - bdev_iostat_ctx->stat->read_latency_ticks += channel->stat.read_latency_ticks; - bdev_iostat_ctx->stat->write_latency_ticks += channel->stat.write_latency_ticks; - + _spdk_bdev_io_stat_add(bdev_iostat_ctx->stat, &channel->stat); spdk_for_each_channel_continue(i, 0); }