int rc = backend->_crc_update_truncate(**fd, length);
assert(rc >= 0);
}
+ lfn_close(fd);
assert(!m_filestore_fail_eio || r != -EIO);
return r;
}
r = _do_fiemap(**fd, offset, len, &exomap);
}
-done:
+ lfn_close(fd);
+
if (r >= 0) {
- lfn_close(fd);
::encode(exomap, bl);
}
+done:
+
dout(10) << "fiemap " << cid << "/" << oid << " " << offset << "~" << len << " = " << r << " num_extents=" << exomap.size() << " " << exomap << dendl;
assert(!m_filestore_fail_eio || r != -EIO);
tracepoint(objectstore, fiemap_exit, r);
spill_out = false;
r = _fgetattrs(**fd, aset);
+ lfn_close(fd);
+ fd = FDRef(); // defensive
if (r < 0) {
goto out;
}
r = lfn_open(c, o, 0, &fd);
// close guard on object so we don't do this again
- if (r == 0)
+ if (r == 0) {
_close_replay_guard(**fd, spos);
-
- lfn_close(fd);
+ lfn_close(fd);
+ }
}
dout(10) << __func__ << " " << c << "/" << o << " from " << oldcid << "/" << oldoid