}
FileRef file;
+ bool create = false;
map<string,FileRef>::iterator q = dir->file_map.find(filename);
if (q == dir->file_map.end()) {
if (overwrite) {
file_map[ino_last] = file;
dir->file_map[filename] = file;
++file->refs;
- log_t.op_file_update(file->fnode);
- log_t.op_dir_link(dirname, filename, file->fnode.ino);
+ create = true;
} else {
// overwrite existing file?
file = q->second;
file->fnode.extents.clear();
}
file->fnode.mtime = ceph_clock_now(NULL);
- log_t.op_file_update(file->fnode);
}
if (dirname.length() > 5) {
}
}
+ log_t.op_file_update(file->fnode);
+ if (create)
+ log_t.op_dir_link(dirname, filename, file->fnode.ino);
+
*h = new FileWriter(file, bdev.size());
dout(10) << __func__ << " h " << *h << " on " << file->fnode << dendl;
return 0;