}
int pick_replica(MDCluster *mdcluster) {
// replicas?
- if (dir_contacts.size()) {
+ if (ino() > 1ULL && dir_contacts.size()) {
//cout << "dir_contacts if " << dir_contacts << endl;
set<int>::iterator it = dir_contacts.begin();
if (dir_contacts.size() == 1)
}
}
- if (dir_replicated) {
+ if (dir_replicated || ino() == 1) {
//cout << "num_mds is " << mdcluster->get_num_mds() << endl;
return rand() % mdcluster->get_num_mds(); // huh.. pick a random mds!
}
{
dout(7) << "export_empty_import " << *dir << endl;
+ return; // hack fixme
+
if (!dir->is_import()) {
dout(7) << "not import (anymore?)" << endl;
return;
dout(7) << "really empty, exporting to " << dest << endl;
assert (dest != mds->get_nodeid());
- dout(7) << "exporting empty import " << *dir << " to " << dest << endl;
+ dout(-7) << "exporting to mds" << dest
+ << " empty import " << *dir << endl;
export_dir( dir, dest );
}
diri->dir->state_clear(CDIR_STATE_COMPLETE);
// reexport?
- if (diri->dir->is_import() && // import
+ if (false && diri->dir->is_import() && // import
diri->dir->get_size() == 0 && // no children
!diri->is_root()) // not root
export_empty_import(diri->dir);
assert(root->dir == NULL);
root->set_dir( new CDir(root, mds, true) );
root->dir->set_dir_auth( 0 ); // me!
- root->dir->dir_rep = CDIR_REP_NONE;
+ root->dir->dir_rep = CDIR_REP_ALL; //NONE;
// root is sort of technically an import (from a vacuum)
imports.insert( root->dir );
// is it empty?
- if (dir->get_size() == 0 &&
+ if (false &&
+ dir->get_size() == 0 &&
!dir->inode->is_auth()) {
// reexport!
export_empty_import(dir);