i.e., if we are already xlocked. This avoids calling {file,scatter}_lock
on an already LOCK_LOCK lock.
if (parent->is_auth())
return (state == LOCK_SYNC_LOCK ||
state == LOCK_LONER_LOCK ||
- state == LOCK_MIXED_LOCK);
+ state == LOCK_MIXED_LOCK ||
+ state == LOCK_LOCK);
else
return false;
}
}
// initiate lock
+ assert(lock->get_state() != LOCK_LOCK);
scatter_lock(lock);
// fall-thru to below.
return false;
}
- // initiate lock
+ // initiate lock
+ assert(lock->get_state() != LOCK_LOCK);
file_lock(lock);
// fall-thru to below.
bool can_xlock_soon() {
if (parent->is_auth())
return (state == LOCK_SCATTER_LOCK ||
- state == LOCK_SYNC_LOCK);
+ state == LOCK_SYNC_LOCK ||
+ state == LOCK_LOCK);
else
return false;
}