summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-10-07 05:22:20 -0700
committerGreg Farnum <greg@inktank.com>2013-10-07 13:50:08 -0700
commit6da4b91c07878e07f23eee563cf1d2422f348c2f (patch)
tree5f1e66082467c00b33bda7647fb4835e2871f119
parent02da1a1d79d97570f682ab84b289cdff0bc800d4 (diff)
downloadceph-6da4b91c07878e07f23eee563cf1d2422f348c2f.tar.gz
os/FileStore: fix ENOENT error code for getattrs()
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>
-rw-r--r--src/os/FileStore.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc
index 514ff022bee..3506c4a4ccd 100644
--- a/src/os/FileStore.cc
+++ b/src/os/FileStore.cc
@@ -3464,6 +3464,8 @@ int FileStore::getattrs(coll_t cid, const ghobject_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();
@@ -3651,6 +3653,8 @@ int FileStore::_rmattrs(coll_t cid, const ghobject_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;