blobstore: bugfix, pass proper spdk_io_channel to bs_dev
Currently only thin_provisioned zeroes back_bs_dev is supported. There was no unit tests for channel in this bs_dev, because it's never used. However, unit tests in patch https://review.gerrithub.io/c/393935/ show that channel is wrong. This patch passed proper spdk_io_channel to callback function. Signed-off-by: Piotr Pelplinski <piotr.pelplinski@intel.com> Change-Id: Ia288ef6c35343ce533ea3f74603e73f823a18181 Reviewed-on: https://review.gerrithub.io/400955 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
370bc8ea53
commit
4dc04dc679
@ -138,7 +138,7 @@ spdk_bs_sequence_read_bs_dev(spdk_bs_sequence_t *seq, struct spdk_bs_dev *bs_dev
|
||||
set->u.sequence.cb_fn = cb_fn;
|
||||
set->u.sequence.cb_arg = cb_arg;
|
||||
|
||||
bs_dev->read(bs_dev, channel->dev_channel, payload, lba, lba_count, &set->cb_args);
|
||||
bs_dev->read(bs_dev, spdk_io_channel_from_ctx(channel), payload, lba, lba_count, &set->cb_args);
|
||||
}
|
||||
|
||||
void
|
||||
@ -149,7 +149,10 @@ spdk_bs_sequence_read_dev(spdk_bs_sequence_t *seq, void *payload,
|
||||
struct spdk_bs_request_set *set = (struct spdk_bs_request_set *)seq;
|
||||
struct spdk_bs_channel *channel = set->channel;
|
||||
|
||||
spdk_bs_sequence_read_bs_dev(seq, channel->dev, payload, lba, lba_count, cb_fn, cb_arg);
|
||||
set->u.sequence.cb_fn = cb_fn;
|
||||
set->u.sequence.cb_arg = cb_arg;
|
||||
|
||||
channel->dev->read(channel->dev, channel->dev_channel, payload, lba, lba_count, &set->cb_args);
|
||||
}
|
||||
|
||||
void
|
||||
@ -182,7 +185,7 @@ spdk_bs_sequence_readv_bs_dev(spdk_bs_sequence_t *seq, struct spdk_bs_dev *bs_de
|
||||
set->u.sequence.cb_fn = cb_fn;
|
||||
set->u.sequence.cb_arg = cb_arg;
|
||||
|
||||
bs_dev->readv(bs_dev, channel->dev_channel, iov, iovcnt, lba, lba_count,
|
||||
bs_dev->readv(bs_dev, spdk_io_channel_from_ctx(channel), iov, iovcnt, lba, lba_count,
|
||||
&set->cb_args);
|
||||
}
|
||||
|
||||
@ -193,7 +196,10 @@ spdk_bs_sequence_readv_dev(spdk_bs_sequence_t *seq, struct iovec *iov, int iovcn
|
||||
struct spdk_bs_request_set *set = (struct spdk_bs_request_set *)seq;
|
||||
struct spdk_bs_channel *channel = set->channel;
|
||||
|
||||
spdk_bs_sequence_readv_bs_dev(seq, channel->dev, iov, iovcnt, lba, lba_count, cb_fn, cb_arg);
|
||||
set->u.sequence.cb_fn = cb_fn;
|
||||
set->u.sequence.cb_arg = cb_arg;
|
||||
channel->dev->readv(channel->dev, channel->dev_channel, iov, iovcnt, lba, lba_count,
|
||||
&set->cb_args);
|
||||
}
|
||||
|
||||
void
|
||||
@ -326,7 +332,7 @@ spdk_bs_batch_read_bs_dev(spdk_bs_batch_t *batch, struct spdk_bs_dev *bs_dev,
|
||||
SPDK_DEBUGLOG(SPDK_LOG_BLOB_RW, "Reading %u blocks from LBA %lu\n", lba_count, lba);
|
||||
|
||||
set->u.batch.outstanding_ops++;
|
||||
bs_dev->read(bs_dev, channel->dev_channel, payload, lba, lba_count, &set->cb_args);
|
||||
bs_dev->read(bs_dev, spdk_io_channel_from_ctx(channel), payload, lba, lba_count, &set->cb_args);
|
||||
}
|
||||
|
||||
void
|
||||
@ -336,7 +342,8 @@ spdk_bs_batch_read_dev(spdk_bs_batch_t *batch, void *payload,
|
||||
struct spdk_bs_request_set *set = (struct spdk_bs_request_set *)batch;
|
||||
struct spdk_bs_channel *channel = set->channel;
|
||||
|
||||
spdk_bs_batch_read_bs_dev(batch, channel->dev, payload, lba, lba_count);
|
||||
set->u.batch.outstanding_ops++;
|
||||
channel->dev->read(channel->dev, channel->dev_channel, payload, lba, lba_count, &set->cb_args);
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user