1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00

ReadOnly: If record does not exist, upgrade to write-lock

If we attempt a readonly lock request for a record that do not exist (yet)
in the local TDB, then upgrade the request to ask for a write lock and force a
request for migrate the record onto the local node.
This allows the "only request record on second local request for known contended records"
heuristics to try to avoid creating readonly delegations unless we have good reason to
assume it is a contended record.

(This used to be ctdb commit e6003e52617385f731ccf93b13d21d5403534a78)
This commit is contained in:
Ronnie Sahlberg 2011-10-28 12:41:27 +11:00
parent c21ec9fffc
commit bb3509b6d2

View File

@ -806,6 +806,13 @@ static bool try_readrecordlock(struct ctdb_lock *lock, TDB_DATA *data)
return true;
}
/* we dont have the record locally,
* drop to writelock to force a migration
*/
if (!hdr && lock->readonly) {
lock->readonly = false;
}
tdb_chainunlock(lock->ctdb_db->tdb, lock->key);
free(hdr);
return NULL;