From d1165a653907c85812beba21bf9cb6c657cf3bf1 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Thu, 15 Feb 2018 15:50:11 -0700 Subject: [PATCH] blobfs: use new blobstore iter_cb_fn option Signed-off-by: Jim Harris Change-Id: I5f9a999e63231f54ba2a2116ec2d6403d9587a3d Reviewed-on: https://review.gerrithub.io/400185 Tested-by: SPDK Automated Test System Reviewed-by: Maciej Szwed Reviewed-by: Shuhei Matsumoto Reviewed-by: Daniel Verkamp --- lib/blobfs/blobfs.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/blobfs/blobfs.c b/lib/blobfs/blobfs.c index c4578d2c3..3199ae9ea 100644 --- a/lib/blobfs/blobfs.c +++ b/lib/blobfs/blobfs.c @@ -575,15 +575,7 @@ iter_cb(void *ctx, struct spdk_blob *blob, int rc) uint32_t *is_deleted; size_t value_len; - if (rc == -ENOENT) { - /* 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) { + if (rc < 0) { args->fn.fs_op_with_handle(args->arg, fs, rc); free_fs_request(req); return; @@ -635,8 +627,6 @@ iter_cb(void *ctx, struct spdk_blob *blob, int rc) deleted_file->id = spdk_blob_get_id(blob); TAILQ_INSERT_TAIL(&args->op.fs_load.deleted_files, deleted_file, tailq); } - - spdk_bs_iter_next(fs->bs, blob, iter_cb, req); } static void @@ -671,7 +661,11 @@ load_cb(void *ctx, struct spdk_blob_store *bs, int bserrno) } 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 @@ -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_fs_cb_args *args; struct spdk_fs_request *req; + struct spdk_bs_opts bs_opts; fs = fs_alloc(dev, send_request_fn); 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->fs = fs; 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