From: Sage Weil Date: Sat, 27 Oct 2012 22:38:02 +0000 (-0700) Subject: os/FileStore: recast _rmattr on top of chain_f* X-Git-Tag: v0.55~188^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=044be91604db72f6e6537149812cc93e3340250f;p=ceph.git os/FileStore: recast _rmattr on top of chain_f* Signed-off-by: Sage Weil --- diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 96a5620796f21..465e0af81c998 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -3890,9 +3890,15 @@ int FileStore::_rmattr(coll_t cid, const hobject_t& oid, const char *name, const SequencerPosition &spos) { dout(15) << "rmattr " << cid << "/" << oid << " '" << name << "'" << dendl; + int r = 0; + int fd = lfn_open(cid, oid, 0); + if (fd < 0) { + r = -errno; + goto out; + } char n[CHAIN_XATTR_MAX_NAME_LEN]; get_attrname(name, n, CHAIN_XATTR_MAX_NAME_LEN); - int r = lfn_removexattr(cid, oid, n); + r = chain_fremovexattr(fd, n); if (r == -ENODATA && g_conf->filestore_xattr_use_omap) { Index index; r = get_index(cid, &index); @@ -3909,6 +3915,8 @@ int FileStore::_rmattr(coll_t cid, const hobject_t& oid, const char *name, return r; } } + TEMP_FAILURE_RETRY(::close(fd)); + out: dout(10) << "rmattr " << cid << "/" << oid << " '" << name << "' = " << r << dendl; return r; }