]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/memstore: fix fiemap
authorSage Weil <sage@redhat.com>
Mon, 11 Jan 2016 21:48:15 +0000 (16:48 -0500)
committerSage Weil <sage@redhat.com>
Mon, 11 Jan 2016 21:48:15 +0000 (16:48 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/memstore/MemStore.cc

index 9d0f8b91524994785787d341a12234ec5fa18a9f..06919d0f9a9c8c2e974f4f59d1c951dc9f969397 100644 (file)
@@ -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<uint64_t, uint64_t> 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<uint64_t, uint64_t> m;
+  if (offset >= o->get_size())
+    goto out;
+ out:
   m[offset] = l;
   ::encode(m, bl);
   return 0;