X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=ctdb%2Fserver%2Fctdb_lock.c;h=4cdad18e500f9802366d19dd13aff85886cce508;hb=e0d54594519de67b6f0d0ec003bc0327f70f026b;hp=c07ccd68f2182608d12d52447521d9258ff98182;hpb=97a5c579574fb5702a743e07b896c9a0ec0acc4f;p=obnox%2Fsamba%2Fsamba-obnox.git diff --git a/ctdb/server/ctdb_lock.c b/ctdb/server/ctdb_lock.c index c07ccd68f21..4cdad18e500 100644 --- a/ctdb/server/ctdb_lock.c +++ b/ctdb/server/ctdb_lock.c @@ -838,6 +838,11 @@ static struct lock_request *ctdb_lock_internal(struct ctdb_context *ctdb, return NULL; } + if ((request = talloc_zero(lock_ctx, struct lock_request)) == NULL) { + talloc_free(lock_ctx); + return NULL; + } + lock_ctx->type = type; lock_ctx->ctdb = ctdb; lock_ctx->ctdb_db = ctdb_db; @@ -856,6 +861,7 @@ static struct lock_request *ctdb_lock_internal(struct ctdb_context *ctdb, lock_ctx->priority = priority; lock_ctx->auto_mark = auto_mark; + lock_ctx->request = request; lock_ctx->child = -1; DLIST_ADD_END(ctdb->lock_pending, lock_ctx, NULL); @@ -868,17 +874,11 @@ static struct lock_request *ctdb_lock_internal(struct ctdb_context *ctdb, /* Start the timer when we activate the context */ lock_ctx->start_time = timeval_current(); - if ((request = talloc_zero(lock_ctx, struct lock_request)) == NULL) { - talloc_free(lock_ctx); - return NULL; - } - request->lctx = lock_ctx; request->callback = callback; request->private_data = private_data; talloc_set_destructor(request, ctdb_lock_request_destructor); - lock_ctx->request = request; ctdb_lock_schedule(ctdb);