From a87df7009e336f39aa26ae51c9202321663dcb10 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 24 Aug 2007 02:38:09 +0000 Subject: r24643: add a ctdb_fetch() function to the ctdb client code (This used to be commit 5705ee04498780d8ca89290e85b8ec831f0a185d) --- source4/cluster/ctdb/client/ctdb_client.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source4') diff --git a/source4/cluster/ctdb/client/ctdb_client.c b/source4/cluster/ctdb/client/ctdb_client.c index d85f883b22..b569a69c8d 100644 --- a/source4/cluster/ctdb/client/ctdb_client.c +++ b/source4/cluster/ctdb/client/ctdb_client.c @@ -637,6 +637,30 @@ int ctdb_record_store(struct ctdb_record_handle *h, TDB_DATA data) return ctdb_ltdb_store(h->ctdb_db, h->key, &h->header, data); } +/* + non-locking fetch of a record + */ +int ctdb_fetch(struct ctdb_db_context *ctdb_db, TALLOC_CTX *mem_ctx, + TDB_DATA key, TDB_DATA *data) +{ + struct ctdb_call call; + int ret; + + call.call_id = CTDB_FETCH_FUNC; + call.call_data.dptr = NULL; + call.call_data.dsize = 0; + + ret = ctdb_call(ctdb_db, &call); + + if (ret == 0) { + *data = call.reply_data; + talloc_steal(mem_ctx, data->dptr); + } + + return ret; +} + + struct ctdb_client_control_state { struct ctdb_context *ctdb; uint32_t reqid; -- cgit