lib: Make ctdbd_db_attach return 0/errno
authorVolker Lendecke <vl@samba.org>
Sat, 3 Oct 2015 03:42:05 +0000 (20:42 -0700)
committerJeremy Allison <jra@samba.org>
Wed, 7 Oct 2015 21:54:06 +0000 (23:54 +0200)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/include/ctdbd_conn.h
source3/lib/ctdbd_conn.c
source3/lib/dbwrap/dbwrap_ctdb.c

index 7a3b07b0452bf86659a03f39a8da3870e236ff67..7e56a4c6d60d7744464f2ade77d44b871da69f16 100644 (file)
@@ -51,8 +51,8 @@ bool ctdb_processes_exist(struct ctdbd_connection *conn,
 char *ctdbd_dbpath(struct ctdbd_connection *conn,
                   TALLOC_CTX *mem_ctx, uint32_t db_id);
 
-NTSTATUS ctdbd_db_attach(struct ctdbd_connection *conn, const char *name,
-                        uint32_t *db_id, int tdb_flags);
+int ctdbd_db_attach(struct ctdbd_connection *conn, const char *name,
+                   uint32_t *db_id, int tdb_flags);
 
 NTSTATUS ctdbd_migrate(struct ctdbd_connection *conn, uint32_t db_id,
                       TDB_DATA key);
index e41b0d4ec87a63a0ed56d8a7d3745ae8be7f4881..d759be6fffd3396bfe289bb3f41cd229b695f8ef 100644 (file)
@@ -868,8 +868,8 @@ char *ctdbd_dbpath(struct ctdbd_connection *conn,
 /*
  * attach to a ctdb database
  */
-NTSTATUS ctdbd_db_attach(struct ctdbd_connection *conn,
-                        const char *name, uint32_t *db_id, int tdb_flags)
+int ctdbd_db_attach(struct ctdbd_connection *conn,
+                   const char *name, uint32_t *db_id, int tdb_flags)
 {
        int ret;
        TDB_DATA data;
@@ -886,19 +886,19 @@ NTSTATUS ctdbd_db_attach(struct ctdbd_connection *conn,
        if (ret != 0) {
                DEBUG(0, (__location__ " ctdb_control for db_attach "
                          "failed: %s\n", strerror(ret)));
-               return map_nt_error_from_unix(ret);
+               return ret;
        }
 
        if (cstatus != 0 || data.dsize != sizeof(uint32_t)) {
                DEBUG(0,(__location__ " ctdb_control for db_attach failed\n"));
-               return NT_STATUS_INTERNAL_ERROR;
+               return EIO;
        }
 
        *db_id = *(uint32_t *)data.dptr;
        talloc_free(data.dptr);
 
        if (!(tdb_flags & TDB_SEQNUM)) {
-               return NT_STATUS_OK;
+               return 0;
        }
 
        data.dptr = (uint8_t *)db_id;
@@ -910,11 +910,10 @@ NTSTATUS ctdbd_db_attach(struct ctdbd_connection *conn,
        if ((ret != 0) || cstatus != 0) {
                DEBUG(0, (__location__ " ctdb_control for enable seqnum "
                          "failed: %s\n", strerror(ret)));
-               return (ret == 0) ? NT_STATUS_INTERNAL_ERROR :
-                       map_nt_error_from_unix(ret);
+               return (ret == 0) ? EIO : ret;
        }
 
-       return NT_STATUS_OK;
+       return 0;
 }
 
 /*
index 9402bdd4ee54f93547169fb658ad852ae52208f9..c495c5ca9113b0926dc6a98a3b2d6ace0ebbfbfc 100644 (file)
@@ -1547,6 +1547,7 @@ struct db_context *db_open_ctdb(TALLOC_CTX *mem_ctx,
        struct ctdb_db_priority prio;
        NTSTATUS status;
        int cstatus;
+       int ret;
 
        if (!lp_clustering()) {
                DEBUG(10, ("Clustering disabled -- no ctdb\n"));
@@ -1582,8 +1583,10 @@ struct db_context *db_open_ctdb(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       if (!NT_STATUS_IS_OK(ctdbd_db_attach(conn, name, &db_ctdb->db_id, tdb_flags))) {
-               DEBUG(0, ("ctdbd_db_attach failed for %s\n", name));
+       ret = ctdbd_db_attach(conn, name, &db_ctdb->db_id, tdb_flags);
+       if (ret != 0) {
+               DEBUG(0, ("ctdbd_db_attach failed for %s: %s\n", name,
+                         strerror(ret)));
                TALLOC_FREE(result);
                return NULL;
        }