blob: add _spdk_blob_sync_md

This enables some code reuse for future patches.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I296a6c5c0915da4a77a1ab43e8f10a335b7d16d0

Reviewed-on: https://review.gerrithub.io/396736
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
Jim Harris 2018-01-26 15:12:29 -07:00
parent aec7a76e36
commit 85a0a63eff

View File

@ -3166,12 +3166,29 @@ _spdk_blob_sync_md_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserrno)
spdk_bs_sequence_finish(seq, bserrno); spdk_bs_sequence_finish(seq, bserrno);
} }
static void
_spdk_blob_sync_md(struct spdk_blob_data *blob, spdk_blob_op_complete cb_fn, void *cb_arg)
{
struct spdk_bs_cpl cpl;
spdk_bs_sequence_t *seq;
cpl.type = SPDK_BS_CPL_TYPE_BLOB_BASIC;
cpl.u.blob_basic.cb_fn = cb_fn;
cpl.u.blob_basic.cb_arg = cb_arg;
seq = spdk_bs_sequence_start(blob->bs->md_channel, &cpl);
if (!seq) {
cb_fn(cb_arg, -ENOMEM);
return;
}
_spdk_blob_persist(seq, blob, _spdk_blob_sync_md_cpl, blob);
}
void void
spdk_blob_sync_md(struct spdk_blob *_blob, spdk_blob_op_complete cb_fn, void *cb_arg) spdk_blob_sync_md(struct spdk_blob *_blob, spdk_blob_op_complete cb_fn, void *cb_arg)
{ {
struct spdk_blob_data *blob = __blob_to_data(_blob); struct spdk_blob_data *blob = __blob_to_data(_blob);
struct spdk_bs_cpl cpl;
spdk_bs_sequence_t *seq;
assert(blob != NULL); assert(blob != NULL);
assert(spdk_get_thread() == blob->bs->md_thread); assert(spdk_get_thread() == blob->bs->md_thread);
@ -3192,17 +3209,7 @@ spdk_blob_sync_md(struct spdk_blob *_blob, spdk_blob_op_complete cb_fn, void *cb
return; return;
} }
cpl.type = SPDK_BS_CPL_TYPE_BLOB_BASIC; _spdk_blob_sync_md(blob, cb_fn, cb_arg);
cpl.u.blob_basic.cb_fn = cb_fn;
cpl.u.blob_basic.cb_arg = cb_arg;
seq = spdk_bs_sequence_start(blob->bs->md_channel, &cpl);
if (!seq) {
cb_fn(cb_arg, -ENOMEM);
return;
}
_spdk_blob_persist(seq, blob, _spdk_blob_sync_md_cpl, blob);
} }
/* END spdk_blob_sync_md */ /* END spdk_blob_sync_md */