}
pi.inode.version = cur->pre_dirty();
- pi.inode.ctime = mdr->get_op_stamp();
+ pi.inode.ctime = pi.inode.rstat.rctime = mdr->get_op_stamp();
pi.inode.change_attr++;
// log + wait
// prepare
auto &pi = in->project_inode();
pi.inode.version = in->pre_dirty();
- pi.inode.mtime = pi.inode.ctime = mdr->get_op_stamp();
+ pi.inode.mtime = pi.inode.ctime = pi.inode.rstat.rctime = mdr->get_op_stamp();
pi.inode.change_attr++;
uint64_t old_size = std::max<uint64_t>(pi.inode.size, mdr->client_request->head.args.open.old_size);
// add the old pool to the inode
pi.inode.add_old_pool(old_layout.pool_id);
pi.inode.version = cur->pre_dirty();
- pi.inode.ctime = mdr->get_op_stamp();
+ pi.inode.ctime = pi.inode.rstat.rctime = mdr->get_op_stamp();
pi.inode.change_attr++;
// log + wait
int64_t old_pool = pi.inode.layout.pool_id;
pi.inode.add_old_pool(old_pool);
pi.inode.layout = layout;
- pi.inode.ctime = mdr->get_op_stamp();
pip = &pi.inode;
} else if (name.compare(0, 10, "ceph.quota") == 0) {
if (!cur->is_dir() || cur->is_root()) {
}
pip->change_attr++;
- pip->ctime = mdr->get_op_stamp();
+ pip->ctime = pip->rstat.rctime = mdr->get_op_stamp();
pip->version = cur->pre_dirty();
if (cur->is_file())
pip->update_backtrace();
// project update
auto &pi = cur->project_inode(true);
pi.inode.version = cur->pre_dirty();
- pi.inode.ctime = mdr->get_op_stamp();
+ pi.inode.ctime = pi.inode.rstat.rctime = mdr->get_op_stamp();
pi.inode.change_attr++;
pi.inode.xattr_version++;
auto &px = *pi.xattrs;
auto &pi = cur->project_inode(true);
auto &px = *pi.xattrs;
pi.inode.version = cur->pre_dirty();
- pi.inode.ctime = mdr->get_op_stamp();
+ pi.inode.ctime = pi.inode.rstat.rctime = mdr->get_op_stamp();
pi.inode.change_attr++;
pi.inode.xattr_version++;
px.erase(mempool::mds_co::string(name));
// project inode update
auto &pi = targeti->project_inode();
pi.inode.nlink++;
- pi.inode.ctime = mdr->get_op_stamp();
+ pi.inode.ctime = pi.inode.rstat.rctime = mdr->get_op_stamp();
pi.inode.change_attr++;
pi.inode.version = tipv;
}
// inode
- pi.inode.ctime = rollback.old_ctime;
+ pi.inode.ctime = pi.inode.rstat.rctime = rollback.old_ctime;
if (rollback.was_inc)
pi.inode.nlink--;
else
pi.inode.stray_prior_path = std::move(t);
}
pi.inode.version = in->pre_dirty();
- pi.inode.ctime = mdr->get_op_stamp();
+ pi.inode.ctime = pi.inode.rstat.rctime = mdr->get_op_stamp();
pi.inode.change_attr++;
pi.inode.nlink--;
if (pi.inode.nlink == 0)
if (!silent) {
if (spi) {
- spi->ctime = mdr->get_op_stamp();
+ spi->ctime = spi->rstat.rctime = mdr->get_op_stamp();
spi->change_attr++;
if (linkmerge)
spi->nlink--;
}
if (tpi) {
- tpi->ctime = mdr->get_op_stamp();
+ tpi->ctime = tpi->rstat.rctime = mdr->get_op_stamp();
tpi->change_attr++;
{
std::string t;
projected = false;
}
if (pip->ctime == rollback.ctime)
- pip->ctime = rollback.orig_src.old_ctime;
+ pip->ctime = pip->rstat.rctime = rollback.orig_src.old_ctime;
if (rollback.srci_snapbl.length() && in->snaprealm) {
bool hadrealm;
projected = false;
}
if (ti->ctime == rollback.ctime)
- ti->ctime = rollback.orig_dest.old_ctime;
+ ti->ctime = ti->rstat.rctime = rollback.orig_dest.old_ctime;
if (MDS_INO_IS_STRAY(rollback.orig_src.dirfrag.ino)) {
if (MDS_INO_IS_STRAY(rollback.orig_dest.dirfrag.ino))
assert(!rollback.orig_dest.ino && !rollback.orig_dest.remote_ino);
info.stamp = mdr->get_op_stamp();
auto &pi = diri->project_inode(false, true);
- pi.inode.ctime = info.stamp;
+ pi.inode.ctime = pi.inode.rstat.rctime = info.stamp;
pi.inode.version = diri->pre_dirty();
// project the snaprealm
// journal
auto &pi = diri->project_inode(false, true);
pi.inode.version = diri->pre_dirty();
- pi.inode.ctime = mdr->get_op_stamp();
+ pi.inode.ctime = pi.inode.rstat.rctime = mdr->get_op_stamp();
mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, "rmsnap");
// journal
auto &pi = diri->project_inode(false, true);
- pi.inode.ctime = mdr->get_op_stamp();
+ pi.inode.ctime = pi.inode.rstat.rctime = mdr->get_op_stamp();
pi.inode.version = diri->pre_dirty();
// project the snaprealm