From cacfeef389b735e9ab05e62ded24d5e2644fa0e1 Mon Sep 17 00:00:00 2001 From: Cunyin Chang Date: Fri, 5 Jan 2018 12:55:32 +0800 Subject: [PATCH] blobfs: only delete the "removed" file when ref count == 0. Change-Id: I7bbbed5e62715fbbec381ce4226c5273ebef1a0a Signed-off-by: Cunyin Chang Reviewed-on: https://review.gerrithub.io/393729 Reviewed-by: Jim Harris Reviewed-by: Ben Walker Tested-by: SPDK Automated Test System --- lib/blobfs/blobfs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/blobfs/blobfs.c b/lib/blobfs/blobfs.c index 09dbe9f3e..b83c1f5c1 100644 --- a/lib/blobfs/blobfs.c +++ b/lib/blobfs/blobfs.c @@ -2348,6 +2348,7 @@ __file_close_async_done(void *ctx, int bserrno) spdk_fs_delete_file_async(file->fs, file->name, blob_delete_cb, ctx); return; } + args->fn.file_op(args->arg, bserrno); free_fs_request(req); } @@ -2367,7 +2368,8 @@ __file_close_async(struct spdk_file *file, struct spdk_fs_request *req) file->ref_count--; if (file->ref_count > 0) { pthread_spin_unlock(&file->lock); - __file_close_async_done(req, 0); + req->args.fn.file_op(req->args.arg, 0); + free_fs_request(req); return; }