dn->pre_dirty();
inode_t *pi = in->project_inode();
+ dn->make_path_string(pi->stray_prior_path);
mdr->add_projected_inode(in); // do this _after_ my dn->pre_dirty().. we apply that one manually.
pi->version = in->pre_dirty();
pi->ctime = mdr->get_op_stamp();
*/
void inode_t::encode(bufferlist &bl) const
{
- ENCODE_START(11, 6, bl);
+ ENCODE_START(12, 6, bl);
::encode(ino, bl);
::encode(rdev, bl);
::encode(inline_data, bl);
::encode(quota, bl);
+ ::encode(stray_prior_path, bl);
+
ENCODE_FINISH(bl);
}
void inode_t::decode(bufferlist::iterator &p)
{
- DECODE_START_LEGACY_COMPAT_LEN(11, 6, 6, p);
+ DECODE_START_LEGACY_COMPAT_LEN(12, 6, 6, p);
::decode(ino, p);
::decode(rdev, p);
backtrace_version = 0; // force update backtrace
if (struct_v >= 11)
::decode(quota, p);
+ if (struct_v >= 12)
+ ::decode(stray_prior_path, p);
DECODE_FINISH(p);
}
f->dump_unsigned("file_data_version", file_data_version);
f->dump_unsigned("xattr_version", xattr_version);
f->dump_unsigned("backtrace_version", backtrace_version);
+
+ f->dump_string("stray_prior_path", stray_prior_path);
}
void inode_t::generate_test_instances(list<inode_t*>& ls)
snapid_t oldest_snap;
+ string stray_prior_path; //stores path before unlink
+
inode_t() : ino(0), rdev(0),
mode(0), uid(0), gid(0), nlink(0),
size(0), max_size_ever(0),