From: Sage Weil Date: Mon, 11 Jan 2016 21:48:15 +0000 (-0500) Subject: os/memstore: fix fiemap X-Git-Tag: v10.0.3~43^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d94cf5b2113a9706e19291204fd296fbaea1b192;p=ceph.git os/memstore: fix fiemap Signed-off-by: Sage Weil --- diff --git a/src/os/memstore/MemStore.cc b/src/os/memstore/MemStore.cc index 9d0f8b915249..06919d0f9a9c 100644 --- a/src/os/memstore/MemStore.cc +++ b/src/os/memstore/MemStore.cc @@ -327,12 +327,15 @@ int MemStore::fiemap(coll_t cid, const ghobject_t& oid, ObjectRef o = c->get_object(oid); if (!o) return -ENOENT; - if (offset >= o->get_size()) - return 0; + map m; size_t l = len; + if (offset == 0 && len == 0) + l = o->get_size(); if (offset + l > o->get_size()) l = o->get_size() - offset; - map m; + if (offset >= o->get_size()) + goto out; + out: m[offset] = l; ::encode(m, bl); return 0;