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);
return r;
}
}
+ TEMP_FAILURE_RETRY(::close(fd));
+ out:
dout(10) << "rmattr " << cid << "/" << oid << " '" << name << "' = " << r << dendl;
return r;
}