Signed-off-by: Sage Weil <sage@inktank.com>
char fn[PATH_MAX];
get_cdir(cid, fn, sizeof(fn));
dout(10) << "collection_getattrs " << fn << dendl;
- int r = _getattrs(fn, aset);
+ int r;
+ int fd = ::open(fn, O_RDONLY);
+ if (fd < 0) {
+ r = -errno;
+ goto out;
+ }
+ r = _fgetattrs(fd, aset, true);
+ TEMP_FAILURE_RETRY(::close(fd));
+ out:
dout(10) << "collection_getattrs " << fn << " = " << r << dendl;
assert(!m_filestore_fail_eio || r != -EIO);
return r;