bdev: move link to spdk_bdev_io internal struct

I missed this one in the initial series.

Change-Id: Id4dc7574a04cd964455852f1a00084b65ab989b3
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/416253
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Seth Howell 2018-06-20 13:58:59 -07:00 committed by Ben Walker
parent 4393ae23b0
commit e550391ddd
3 changed files with 14 additions and 14 deletions

View File

@ -372,9 +372,6 @@ struct spdk_bdev_io {
} nvme_passthru; } nvme_passthru;
} u; } u;
/** Member used for linking child I/Os together. */
TAILQ_ENTRY(spdk_bdev_io) link;
/** It may be used by modules to put the bdev_io into its own list. */ /** It may be used by modules to put the bdev_io into its own list. */
TAILQ_ENTRY(spdk_bdev_io) module_link; TAILQ_ENTRY(spdk_bdev_io) module_link;
@ -417,6 +414,9 @@ struct spdk_bdev_io {
/** Callback for when buf is allocated */ /** Callback for when buf is allocated */
spdk_bdev_io_get_buf_cb get_buf_cb; spdk_bdev_io_get_buf_cb get_buf_cb;
/** Member used for linking child I/Os together. */
TAILQ_ENTRY(spdk_bdev_io) link;
/** Entry to the list need_buf of struct spdk_bdev. */ /** Entry to the list need_buf of struct spdk_bdev. */
STAILQ_ENTRY(spdk_bdev_io) buf_link; STAILQ_ENTRY(spdk_bdev_io) buf_link;
} internal; } internal;

View File

@ -1008,7 +1008,7 @@ _spdk_bdev_qos_io_submit(struct spdk_bdev_channel *ch)
} }
bdev_io = TAILQ_FIRST(&qos->queued); bdev_io = TAILQ_FIRST(&qos->queued);
TAILQ_REMOVE(&qos->queued, bdev_io, link); TAILQ_REMOVE(&qos->queued, bdev_io, internal.link);
qos->io_submitted_this_timeslice++; qos->io_submitted_this_timeslice++;
qos->byte_submitted_this_timeslice += _spdk_bdev_get_io_size_in_byte(bdev_io); qos->byte_submitted_this_timeslice += _spdk_bdev_get_io_size_in_byte(bdev_io);
ch->io_outstanding++; ch->io_outstanding++;
@ -1036,14 +1036,14 @@ _spdk_bdev_io_submit(void *ctx)
} else { } else {
bdev_ch->io_outstanding--; bdev_ch->io_outstanding--;
shared_resource->io_outstanding--; shared_resource->io_outstanding--;
TAILQ_INSERT_TAIL(&shared_resource->nomem_io, bdev_io, link); TAILQ_INSERT_TAIL(&shared_resource->nomem_io, bdev_io, internal.link);
} }
} else if (bdev_ch->flags & BDEV_CH_RESET_IN_PROGRESS) { } else if (bdev_ch->flags & BDEV_CH_RESET_IN_PROGRESS) {
spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
} else if (bdev_ch->flags & BDEV_CH_QOS_ENABLED) { } else if (bdev_ch->flags & BDEV_CH_QOS_ENABLED) {
bdev_ch->io_outstanding--; bdev_ch->io_outstanding--;
shared_resource->io_outstanding--; shared_resource->io_outstanding--;
TAILQ_INSERT_TAIL(&bdev->qos->queued, bdev_io, link); TAILQ_INSERT_TAIL(&bdev->qos->queued, bdev_io, internal.link);
_spdk_bdev_qos_io_submit(bdev_ch); _spdk_bdev_qos_io_submit(bdev_ch);
} else { } else {
SPDK_ERRLOG("unknown bdev_ch flag %x found\n", bdev_ch->flags); SPDK_ERRLOG("unknown bdev_ch flag %x found\n", bdev_ch->flags);
@ -1349,9 +1349,9 @@ _spdk_bdev_abort_queued_io(bdev_io_tailq_t *queue, struct spdk_bdev_channel *ch)
{ {
struct spdk_bdev_io *bdev_io, *tmp; struct spdk_bdev_io *bdev_io, *tmp;
TAILQ_FOREACH_SAFE(bdev_io, queue, link, tmp) { TAILQ_FOREACH_SAFE(bdev_io, queue, internal.link, tmp) {
if (bdev_io->internal.ch == ch) { if (bdev_io->internal.ch == ch) {
TAILQ_REMOVE(queue, bdev_io, link); TAILQ_REMOVE(queue, bdev_io, internal.link);
/* /*
* spdk_bdev_io_complete() assumes that the completed I/O had * spdk_bdev_io_complete() assumes that the completed I/O had
* been submitted to the bdev module. Since in this case it * been submitted to the bdev module. Since in this case it
@ -2013,7 +2013,7 @@ _spdk_bdev_reset_dev(struct spdk_io_channel_iter *i, int status)
struct spdk_bdev_io *bdev_io; struct spdk_bdev_io *bdev_io;
bdev_io = TAILQ_FIRST(&ch->queued_resets); bdev_io = TAILQ_FIRST(&ch->queued_resets);
TAILQ_REMOVE(&ch->queued_resets, bdev_io, link); TAILQ_REMOVE(&ch->queued_resets, bdev_io, internal.link);
spdk_bdev_io_submit_reset(bdev_io); spdk_bdev_io_submit_reset(bdev_io);
} }
@ -2042,7 +2042,7 @@ _spdk_bdev_reset_freeze_channel(struct spdk_io_channel_iter *i)
* just take it anyway. */ * just take it anyway. */
pthread_mutex_lock(&channel->bdev->mutex); pthread_mutex_lock(&channel->bdev->mutex);
if (channel->bdev->qos->ch == channel) { if (channel->bdev->qos->ch == channel) {
TAILQ_SWAP(&channel->bdev->qos->queued, &tmp_queued, spdk_bdev_io, link); TAILQ_SWAP(&channel->bdev->qos->queued, &tmp_queued, spdk_bdev_io, internal.link);
} }
pthread_mutex_unlock(&channel->bdev->mutex); pthread_mutex_unlock(&channel->bdev->mutex);
} }
@ -2106,7 +2106,7 @@ spdk_bdev_reset(struct spdk_bdev_desc *desc, struct spdk_io_channel *ch,
spdk_bdev_io_init(bdev_io, bdev, cb_arg, cb); spdk_bdev_io_init(bdev_io, bdev, cb_arg, cb);
pthread_mutex_lock(&bdev->mutex); pthread_mutex_lock(&bdev->mutex);
TAILQ_INSERT_TAIL(&channel->queued_resets, bdev_io, link); TAILQ_INSERT_TAIL(&channel->queued_resets, bdev_io, internal.link);
pthread_mutex_unlock(&bdev->mutex); pthread_mutex_unlock(&bdev->mutex);
_spdk_bdev_channel_start_reset(channel); _spdk_bdev_channel_start_reset(channel);
@ -2324,7 +2324,7 @@ _spdk_bdev_ch_retry_io(struct spdk_bdev_channel *bdev_ch)
while (!TAILQ_EMPTY(&shared_resource->nomem_io)) { while (!TAILQ_EMPTY(&shared_resource->nomem_io)) {
bdev_io = TAILQ_FIRST(&shared_resource->nomem_io); bdev_io = TAILQ_FIRST(&shared_resource->nomem_io);
TAILQ_REMOVE(&shared_resource->nomem_io, bdev_io, link); TAILQ_REMOVE(&shared_resource->nomem_io, bdev_io, internal.link);
bdev_io->internal.ch->io_outstanding++; bdev_io->internal.ch->io_outstanding++;
shared_resource->io_outstanding++; shared_resource->io_outstanding++;
bdev_io->internal.status = SPDK_BDEV_IO_STATUS_PENDING; bdev_io->internal.status = SPDK_BDEV_IO_STATUS_PENDING;
@ -2464,7 +2464,7 @@ spdk_bdev_io_complete(struct spdk_bdev_io *bdev_io, enum spdk_bdev_io_status sta
shared_resource->io_outstanding--; shared_resource->io_outstanding--;
if (spdk_unlikely(status == SPDK_BDEV_IO_STATUS_NOMEM)) { if (spdk_unlikely(status == SPDK_BDEV_IO_STATUS_NOMEM)) {
TAILQ_INSERT_HEAD(&shared_resource->nomem_io, bdev_io, link); TAILQ_INSERT_HEAD(&shared_resource->nomem_io, bdev_io, internal.link);
/* /*
* Wait for some of the outstanding I/O to complete before we * Wait for some of the outstanding I/O to complete before we
* retry any of the nomem_io. Normally we will wait for * retry any of the nomem_io. Normally we will wait for

View File

@ -271,7 +271,7 @@ bdev_io_tailq_cnt(bdev_io_tailq_t *tailq)
struct spdk_bdev_io *io; struct spdk_bdev_io *io;
uint32_t cnt = 0; uint32_t cnt = 0;
TAILQ_FOREACH(io, tailq, link) { TAILQ_FOREACH(io, tailq, internal.link) {
cnt++; cnt++;
} }