From: Sage Weil Date: Sat, 27 Oct 2012 22:05:59 +0000 (-0700) Subject: os/FileStore: use _fgetattrs() for GETATTRS op X-Git-Tag: v0.55~188^2~18 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=769f47321d26b401a75f856be83bccf201f21d5d;p=ceph.git os/FileStore: use _fgetattrs() for GETATTRS op Signed-off-by: Sage Weil --- diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 9f354507e0c..9013e08fb94 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -3888,7 +3888,14 @@ int FileStore::getattr(coll_t cid, const hobject_t& oid, const char *name, buffe int FileStore::getattrs(coll_t cid, const hobject_t& oid, map& aset, bool user_only) { dout(15) << "getattrs " << cid << "/" << oid << dendl; - int r = _getattrs(cid, oid, aset, user_only); + int r; + int fd = lfn_open(cid, oid, 0); + if (fd < 0) { + r = -errno; + goto out; + } + r = _fgetattrs(fd, aset, user_only); + TEMP_FAILURE_RETRY(::close(fd)); if (g_conf->filestore_xattr_use_omap) { set omap_attrs; map omap_aset;