r = safe_write(fd, buf, sizeof(buf));
if (r) {
derr << "Error " << r << " (" << cpp_strerror(r) << ") writing journal file header" << dendl;
+ ::close(fd);
return r;
}
if (trimmed_pos > start) {
derr << std::hex << "Invalid header (trimmed 0x" << trimmed_pos
<< " > expire 0x" << start << std::dec << dendl;
+ ::close(fd);
return -EINVAL;
}
if (start > write_pos) {
derr << std::hex << "Invalid header (expire 0x" << start
<< " > write 0x" << write_pos << std::dec << dendl;
+ ::close(fd);
return -EINVAL;
}
r = header_cond.wait();
if (r != 0) {
derr << "Failed to write header: " << cpp_strerror(r) << dendl;
+ ::close(fd);
return r;
}
r = write_cond.wait();
if (r != 0) {
derr << "Failed to write header: " << cpp_strerror(r) << dendl;
+ ::close(fd);
return r;
}