From c323c5b51720b39ace2606471b7bb696b19e274c Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Wed, 4 Jun 2014 12:58:07 +0800 Subject: [PATCH] Fix keyvaluestore fiemap bug The result of fiemap is wrong and the offset get from "StripObjectMap::file_to_extents" need to multiply by sequence number Signed-off-by: Haomai Wang --- src/os/KeyValueStore.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/os/KeyValueStore.cc b/src/os/KeyValueStore.cc index d1642edf0ade..f2e3f9137809 100644 --- a/src/os/KeyValueStore.cc +++ b/src/os/KeyValueStore.cc @@ -1670,7 +1670,8 @@ int KeyValueStore::fiemap(coll_t cid, const ghobject_t& oid, map m; for (vector::iterator iter = extents.begin(); iter != extents.end(); ++iter) { - m[iter->offset] = iter->len; + uint64_t off = iter->no * header.strip_size + iter->offset; + m[off] = iter->len; } ::encode(m, bl); return 0; -- 2.47.3