OPTION(mds_kill_mdstable_at, 0, OPT_INT, 0),
OPTION(mds_kill_export_at, 0, OPT_INT, 0),
OPTION(mds_kill_import_at, 0, OPT_INT, 0),
+ OPTION(mds_kill_rename_at, 0, OPT_INT, 0),
OPTION(osd_data, 0, OPT_STR, ""),
OPTION(osd_journal, 0, OPT_STR, ""),
OPTION(osd_journal_size, 0, OPT_INT, 0), // in mb
if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
return;
-
+
if (oldin &&
oldin->is_dir() &&
_dir_is_nonempty(mdr, oldin)) {
return;
}
+ assert(g_conf.mds_kill_rename_at != 1);
+
// -- open all srcdn inode frags, if any --
// we need these open so that auth can properly delegate from inode to dirfrags
// after the inode is _ours_.
}
// test hack: bail after slave does prepare, so we can verify it's _live_ rollback.
- //if (!mdr->more()->slaves.empty() && !srci->is_dir()) assert(0);
- //if (!mdr->more()->slaves.empty() && srci->is_dir()) assert(0);
+ if (!mdr->more()->slaves.empty() && !srci->is_dir())
+ assert(g_conf.mds_kill_rename_at != 2);
+ if (!mdr->more()->slaves.empty() && srci->is_dir())
+ assert(g_conf.mds_kill_rename_at != 3);
// -- prepare anchor updates --
if (!linkmerge || srcdnl->is_primary()) {
if (anchorgather)
return; // waiting for anchor prepares
+
+ assert(g_conf.mds_kill_rename_at != 4);
}
// -- prepare journal entry --
{
dout(10) << "_rename_finish " << *mdr << dendl;
- // test hack: test slave commit
- //if (!mdr->more()->slaves.empty() && !destdn->get_inode()->is_dir()) assert(0);
- //if (!mdr->more()->slaves.empty() && destdn->get_inode()->is_dir()) assert(0);
-
// apply
_rename_apply(mdr, srcdn, destdn, straydn);
CDentry::linkage_t *destdnl = destdn->get_linkage();
+ // test hack: test slave commit
+ if (!mdr->more()->slaves.empty() && !destdnl->get_inode()->is_dir())
+ assert(g_conf.mds_kill_rename_at != 5);
+ if (!mdr->more()->slaves.empty() && destdnl->get_inode()->is_dir())
+ assert(g_conf.mds_kill_rename_at != 6);
// commit anchor updates?
if (mdr->more()->src_reanchor_atid)