blobfs: use new blobstore iter_cb_fn option

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

Reviewed-on: https://review.gerrithub.io/400185
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Maciej Szwed <maciej.szwed@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
Jim Harris 2018-02-15 15:50:11 -07:00
parent 7560f2b2a3
commit d1165a6539

View File

@ -575,15 +575,7 @@ iter_cb(void *ctx, struct spdk_blob *blob, int rc)
uint32_t *is_deleted; uint32_t *is_deleted;
size_t value_len; size_t value_len;
if (rc == -ENOENT) { if (rc < 0) {
/* Finished iterating */
if (_handle_deleted_files(req) == 0) {
return;
}
args->fn.fs_op_with_handle(args->arg, fs, 0);
free_fs_request(req);
return;
} else if (rc < 0) {
args->fn.fs_op_with_handle(args->arg, fs, rc); args->fn.fs_op_with_handle(args->arg, fs, rc);
free_fs_request(req); free_fs_request(req);
return; return;
@ -635,8 +627,6 @@ iter_cb(void *ctx, struct spdk_blob *blob, int rc)
deleted_file->id = spdk_blob_get_id(blob); deleted_file->id = spdk_blob_get_id(blob);
TAILQ_INSERT_TAIL(&args->op.fs_load.deleted_files, deleted_file, tailq); TAILQ_INSERT_TAIL(&args->op.fs_load.deleted_files, deleted_file, tailq);
} }
spdk_bs_iter_next(fs->bs, blob, iter_cb, req);
} }
static void static void
@ -671,7 +661,11 @@ load_cb(void *ctx, struct spdk_blob_store *bs, int bserrno)
} }
common_fs_bs_init(fs, bs); common_fs_bs_init(fs, bs);
spdk_bs_iter_first(fs->bs, iter_cb, req); if (_handle_deleted_files(req) == 0) {
return;
}
args->fn.fs_op_with_handle(args->arg, fs, 0);
free_fs_request(req);
} }
void void
@ -681,6 +675,7 @@ spdk_fs_load(struct spdk_bs_dev *dev, fs_send_request_fn send_request_fn,
struct spdk_filesystem *fs; struct spdk_filesystem *fs;
struct spdk_fs_cb_args *args; struct spdk_fs_cb_args *args;
struct spdk_fs_request *req; struct spdk_fs_request *req;
struct spdk_bs_opts bs_opts;
fs = fs_alloc(dev, send_request_fn); fs = fs_alloc(dev, send_request_fn);
if (fs == NULL) { if (fs == NULL) {
@ -707,7 +702,10 @@ spdk_fs_load(struct spdk_bs_dev *dev, fs_send_request_fn send_request_fn,
args->arg = cb_arg; args->arg = cb_arg;
args->fs = fs; args->fs = fs;
TAILQ_INIT(&args->op.fs_load.deleted_files); TAILQ_INIT(&args->op.fs_load.deleted_files);
spdk_bs_load(dev, NULL, load_cb, req); spdk_bs_opts_init(&bs_opts);
bs_opts.iter_cb_fn = iter_cb;
bs_opts.iter_cb_arg = req;
spdk_bs_load(dev, &bs_opts, load_cb, req);
} }
static void static void