mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
lib: Make ctdbd_parse return 0/errno
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
4636912985
commit
b78c282a91
@ -56,7 +56,7 @@ int ctdbd_db_attach(struct ctdbd_connection *conn, const char *name,
|
||||
|
||||
int ctdbd_migrate(struct ctdbd_connection *conn, uint32_t db_id, TDB_DATA key);
|
||||
|
||||
NTSTATUS ctdbd_parse(struct ctdbd_connection *conn, uint32_t db_id,
|
||||
int ctdbd_parse(struct ctdbd_connection *conn, uint32_t db_id,
|
||||
TDB_DATA key, bool local_copy,
|
||||
void (*parser)(TDB_DATA key, TDB_DATA data,
|
||||
void *private_data),
|
||||
|
@ -973,7 +973,7 @@ int ctdbd_migrate(struct ctdbd_connection *conn, uint32_t db_id, TDB_DATA key)
|
||||
/*
|
||||
* Fetch a record and parse it
|
||||
*/
|
||||
NTSTATUS ctdbd_parse(struct ctdbd_connection *conn, uint32_t db_id,
|
||||
int ctdbd_parse(struct ctdbd_connection *conn, uint32_t db_id,
|
||||
TDB_DATA key, bool local_copy,
|
||||
void (*parser)(TDB_DATA key, TDB_DATA data,
|
||||
void *private_data),
|
||||
@ -984,7 +984,6 @@ NTSTATUS ctdbd_parse(struct ctdbd_connection *conn, uint32_t db_id,
|
||||
struct ctdb_reply_call *reply;
|
||||
struct iovec iov[2];
|
||||
ssize_t nwritten;
|
||||
NTSTATUS status;
|
||||
uint32_t flags;
|
||||
int ret;
|
||||
|
||||
@ -1022,7 +1021,7 @@ NTSTATUS ctdbd_parse(struct ctdbd_connection *conn, uint32_t db_id,
|
||||
|
||||
if ((hdr == NULL) || (hdr->operation != CTDB_REPLY_CALL)) {
|
||||
DEBUG(0, ("received invalid reply\n"));
|
||||
status = NT_STATUS_INTERNAL_ERROR;
|
||||
ret = EIO;
|
||||
goto fail;
|
||||
}
|
||||
reply = (struct ctdb_reply_call *)hdr;
|
||||
@ -1031,17 +1030,17 @@ NTSTATUS ctdbd_parse(struct ctdbd_connection *conn, uint32_t db_id,
|
||||
/*
|
||||
* Treat an empty record as non-existing
|
||||
*/
|
||||
status = NT_STATUS_NOT_FOUND;
|
||||
ret = ENOENT;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
parser(key, make_tdb_data(&reply->data[0], reply->datalen),
|
||||
private_data);
|
||||
|
||||
status = NT_STATUS_OK;
|
||||
ret = 0;
|
||||
fail:
|
||||
TALLOC_FREE(hdr);
|
||||
return status;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1009,7 +1009,6 @@ static struct db_record *fetch_locked_internal(struct db_ctdb_ctx *ctx,
|
||||
{
|
||||
struct db_record *result;
|
||||
struct db_ctdb_rec *crec;
|
||||
NTSTATUS status;
|
||||
TDB_DATA ctdb_data;
|
||||
int migrate_attempts;
|
||||
struct timeval migrate_start;
|
||||
@ -1256,6 +1255,7 @@ static NTSTATUS db_ctdb_parse_record(struct db_context *db, TDB_DATA key,
|
||||
db->private_data, struct db_ctdb_ctx);
|
||||
struct db_ctdb_parse_record_state state;
|
||||
NTSTATUS status;
|
||||
int ret;
|
||||
|
||||
state.parser = parser;
|
||||
state.private_data = private_data;
|
||||
@ -1293,8 +1293,12 @@ static NTSTATUS db_ctdb_parse_record(struct db_context *db, TDB_DATA key,
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
return ctdbd_parse(messaging_ctdbd_connection(), ctx->db_id, key,
|
||||
ret = ctdbd_parse(messaging_ctdbd_connection(), ctx->db_id, key,
|
||||
state.ask_for_readonly_copy, parser, private_data);
|
||||
if (ret != 0) {
|
||||
return map_nt_error_from_unix(ret);
|
||||
}
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
struct traverse_state {
|
||||
|
Loading…
x
Reference in New Issue
Block a user