From 13a58c41ad5c01eefaf68f049b6c7da2b9d19426 Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Wed, 9 Jan 2019 10:43:47 +0800 Subject: [PATCH] blobfs: fix the length value of file. In function spdk_fs_file_stat_async, the stat.size = f->append_pos >= f->length ? f->append_pos : f->length; but in spdk_file_get_length, we return f->length. So generally, it should all use the same method to return the file length, and this patch will fix this issue. Change-Id: Idb9aa9e737711fcd48ac0075c7f7ffed825fe3b0 Signed-off-by: Ziye Yang Reviewed-on: https://review.gerrithub.io/c/439627 Tested-by: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Jim Harris --- lib/blobfs/blobfs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/blobfs/blobfs.c b/lib/blobfs/blobfs.c index 5466f7dcf..cc0c93fae 100644 --- a/lib/blobfs/blobfs.c +++ b/lib/blobfs/blobfs.c @@ -1451,9 +1451,13 @@ spdk_file_get_name(struct spdk_file *file) uint64_t spdk_file_get_length(struct spdk_file *file) { + uint64_t length; + assert(file != NULL); - SPDK_DEBUGLOG(SPDK_LOG_BLOBFS, "file=%s length=0x%jx\n", file->name, file->length); - return file->length; + + length = file->append_pos >= file->length ? file->append_pos : file->length; + SPDK_DEBUGLOG(SPDK_LOG_BLOBFS, "file=%s length=0x%jx\n", file->name, length); + return length; } static void