if (do_parent) {
assert(mut->wrlocks.count(&pin->dirlock));
- assert(mut->wrlocks.count(&pin->nestedlock));
+ //assert(mut->wrlocks.count(&pin->nestedlock));
}
if (do_nested &&
- mut->wrlocks.count(&pin->nestedlock) == 0 &&
- !scatter_wrlock_try(&pin->nestedlock, mut)) {
- dout(10) << "predirty_nested can't wrlock " << pin->nestedlock << " on " << *pin << dendl;
+ mut->wrlocks.count(&pin->dirlock) == 0 &&
+ !scatter_wrlock_try(&pin->dirlock, mut)) {
+ dout(10) << "predirty_nested can't wrlock " << pin->dirlock << " on " << *pin << dendl;
do_nested = false;
break;
}
else
rdlocks.insert(&dn->lock); // existing dn, rdlock
wrlocks.insert(&dn->dir->inode->dirlock); // also, wrlock on dir mtime
- wrlocks.insert(&dn->dir->inode->nestedlock); // also, wrlock on dir mtime
+ //wrlocks.insert(&dn->dir->inode->nestedlock); // also, wrlock on dir mtime
if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
return 0;
rdlocks.insert(&linktrace[i]->lock);
xlocks.insert(&dn->lock);
wrlocks.insert(&dn->dir->inode->dirlock);
- wrlocks.insert(&dn->dir->inode->nestedlock);
+ //wrlocks.insert(&dn->dir->inode->nestedlock);
for (int i=0; i<(int)targettrace.size(); i++)
rdlocks.insert(&targettrace[i]->lock);
xlocks.insert(&targeti->linklock);
rdlocks.insert(&trace[i]->lock);
xlocks.insert(&dn->lock);
wrlocks.insert(&dn->dir->inode->dirlock);
- wrlocks.insert(&dn->dir->inode->nestedlock);
+ //wrlocks.insert(&dn->dir->inode->nestedlock);
xlocks.insert(&in->linklock);
if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
rdlocks.insert(&srctrace[i]->lock);
xlocks.insert(&srcdn->lock);
wrlocks.insert(&srcdn->dir->inode->dirlock);
- wrlocks.insert(&srcdn->dir->inode->nestedlock);
+ //wrlocks.insert(&srcdn->dir->inode->nestedlock);
if (srcdn->is_primary() && srcdn->inode->is_dir())
- xlocks.insert(&srcdn->inode->nestedlock);
+ xlocks.insert(&srcdn->inode->dirlock);
/*
* no, this causes problems if the dftlock is scattered...
rdlocks.insert(&desttrace[i]->lock);
xlocks.insert(&destdn->lock);
wrlocks.insert(&destdn->dir->inode->dirlock);
- wrlocks.insert(&destdn->dir->inode->nestedlock);
+ //wrlocks.insert(&destdn->dir->inode->nestedlock);
if (destdn->is_primary() && destdn->inode->is_dir())
- xlocks.insert(&destdn->inode->nestedlock);
+ xlocks.insert(&destdn->inode->dirlock);
// xlock versionlock on srci if remote?
// this ensures it gets safely remotely auth_pinned, avoiding deadlock;
}
//(*p)->dirlock.add_waiter(SimpleLock::WAIT_STABLE, gather->new_sub());
}
+ /*
for (xlist<CInode*>::iterator p = dirty_dirfrag_nested.begin(); !p.end(); ++p) {
CInode *in = *p;
dout(10) << "try_to_expire waiting for nestedlock flush on " << *in << dendl;
}
//(*p)->nestedlock.add_waiter(SimpleLock::WAIT_STABLE, gather->new_sub());
}
-
+ */
+
// open files
if (!open_files.empty()) {
assert(!mds->mdlog->is_capped()); // hmm FIXME
if (lump.is_dirty()) {
dir->_mark_dirty(logseg);
dir->get_inode()->dirlock.set_updated();
- dir->get_inode()->nestedlock.set_updated();
+ //dir->get_inode()->nestedlock.set_updated();
}
if (lump.is_complete())