From: Volker Lendecke Date: Wed, 23 Oct 2019 09:21:16 +0000 (+0200) Subject: g_lock: Pass "data" down to g_lock_trylock() X-Git-Tag: ldb-2.1.0~637 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78c96f6995aa0cb8e0ec0872bdc00bb452bc2d36;p=thirdparty%2Fsamba.git g_lock: Pass "data" down to g_lock_trylock() Avoid a call to dbwrap_record_get_value(), dbwrap_do_locked() already gave us the value. Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c index 8c67a599173..3c76b34baa7 100644 --- a/source3/lib/g_lock.c +++ b/source3/lib/g_lock.c @@ -198,11 +198,13 @@ static bool g_lock_conflicts(enum g_lock_type l1, enum g_lock_type l2) return true; } -static NTSTATUS g_lock_trylock(struct db_record *rec, struct server_id self, - enum g_lock_type type, - struct server_id *blocker) +static NTSTATUS g_lock_trylock( + struct db_record *rec, + TDB_DATA data, + struct server_id self, + enum g_lock_type type, + struct server_id *blocker) { - TDB_DATA data; size_t i; struct g_lock lck; struct g_lock_rec mylock = {0}; @@ -210,8 +212,6 @@ static NTSTATUS g_lock_trylock(struct db_record *rec, struct server_id self, bool modified = false; bool ok; - data = dbwrap_record_get_value(rec); - ok = g_lock_parse(data.dptr, data.dsize, &lck); if (!ok) { return NT_STATUS_INTERNAL_DB_CORRUPTION; @@ -356,8 +356,8 @@ static void g_lock_lock_fn( struct g_lock_lock_fn_state *state = private_data; struct server_id blocker = {0}; - state->status = g_lock_trylock(rec, state->self, state->state->type, - &blocker); + state->status = g_lock_trylock( + rec, value, state->self, state->state->type, &blocker); if (!NT_STATUS_EQUAL(state->status, NT_STATUS_LOCK_NOT_GRANTED)) { return; }