if (p.first == 1)
continue;
dout(20) << __func__ << " op_file_update " << p.second->fnode << dendl;
+ assert(p.first > 1);
t->op_file_update(p.second->fnode);
}
for (auto& p : dir_map) {
}
if (must_dirty) {
h->file->fnode.mtime = ceph_clock_now(NULL);
+ assert(h->file->fnode.ino >= 1);
log_t.op_file_update(h->file->fnode);
if (h->file->dirty_seq == 0) {
h->file->dirty_seq = log_seq + 1;
dout(10) << __func__ << " deleted, no-op" << dendl;
return 0;
}
+
+ // we never truncate internal log files
+ assert(h->file->fnode.ino > 1);
+
// truncate off unflushed data?
if (h->pos < offset &&
h->pos + h->buffer.length() > offset) {
dout(10) << __func__ << " deleted, no-op" << dendl;
return 0;
}
+ assert(f->fnode.ino > 1);
uint64_t allocated = f->fnode.get_allocated();
if (off + len > allocated) {
uint64_t want = off + len - allocated;
file->fnode.extents.clear();
}
}
+ assert(file->fnode.ino > 1);
file->fnode.mtime = ceph_clock_now(NULL);
file->fnode.prefer_bdev = BlueFS::BDEV_DB;