]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/FileStore: fix ENOENT error code for getattrs()
authorSage Weil <sage@inktank.com>
Mon, 7 Oct 2013 12:22:20 +0000 (05:22 -0700)
committerSage Weil <sage@inktank.com>
Fri, 14 Feb 2014 23:25:50 +0000 (15:25 -0800)
In commit dc0dfb9e01d593afdd430ca776cf4da2c2240a20 the omap xattrs code
moved up a block and r was no longer local to the block.  Translate
ENOENT -> 0 to compensate.

Fix the same error in _rmattrs().

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
(cherry picked from commit 6da4b91c07878e07f23eee563cf1d2422f348c2f)

src/os/FileStore.cc

index b92881fb75f7d358069b23f4ecd4b7c77567c27b..58b23f204af3b7d8c9b8454877fc1d0a1fd5c4d3 100644 (file)
@@ -4027,6 +4027,8 @@ int FileStore::getattrs(coll_t cid, const hobject_t& oid, map<string,bufferptr>&
     dout(10) << __func__ << " could not get omap_attrs r = " << r << dendl;
     goto out;
   }
+  if (r == -ENOENT)
+    r = 0;
   assert(omap_attrs.size() == omap_aset.size());
   for (map<string, bufferlist>::iterator i = omap_aset.begin();
         i != omap_aset.end();
@@ -4212,6 +4214,8 @@ int FileStore::_rmattrs(coll_t cid, const hobject_t& oid,
     dout(10) << __func__ << " could not remove omap_attrs r = " << r << dendl;
     return r;
   }
+  if (r == -ENOENT)
+    r = 0;
  out:
   dout(10) << "rmattrs " << cid << "/" << oid << " = " << r << dendl;
   return r;