summaryrefslogtreecommitdiff
path: root/source4/cluster/ctdb/brlock_ctdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/cluster/ctdb/brlock_ctdb.c')
-rw-r--r--source4/cluster/ctdb/brlock_ctdb.c90
1 files changed, 10 insertions, 80 deletions
diff --git a/source4/cluster/ctdb/brlock_ctdb.c b/source4/cluster/ctdb/brlock_ctdb.c
index bc2fbbc03e..e847a6f50c 100644
--- a/source4/cluster/ctdb/brlock_ctdb.c
+++ b/source4/cluster/ctdb/brlock_ctdb.c
@@ -360,17 +360,7 @@ static int brl_ctdb_lock_func(struct ctdb_call_info *call)
}
reply:
- call->reply_data = talloc(call, TDB_DATA);
- if (call->reply_data == NULL) {
- return CTDB_ERR_NOMEM;
- }
-
- call->reply_data->dptr = talloc_size(call, sizeof(NTSTATUS));
- call->reply_data->dsize = sizeof(NTSTATUS);
- if (call->reply_data->dptr == NULL) {
- return CTDB_ERR_NOMEM;
- }
- *(NTSTATUS *)call->reply_data->dptr = status;
+ call->status = NT_STATUS_V(status);
return 0;
}
@@ -392,7 +382,6 @@ static NTSTATUS brl_ctdb_lock(struct brl_context *brl,
{
struct ctdb_lock_req req;
struct ctdb_call call;
- NTSTATUS status;
int ret;
call.call_id = FUNC_BRL_LOCK;
@@ -416,10 +405,7 @@ static NTSTATUS brl_ctdb_lock(struct brl_context *brl,
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
- status = *(NTSTATUS *)call.reply_data.dptr;
- talloc_free(call.reply_data.dptr);
-
- return status;
+ return NT_STATUS(call.status);
}
#if ENABLE_NOTIFIES
@@ -560,17 +546,7 @@ found:
status = NT_STATUS_RANGE_NOT_LOCKED;
}
- call->reply_data = talloc(call, TDB_DATA);
- if (call->reply_data == NULL) {
- return CTDB_ERR_NOMEM;
- }
-
- call->reply_data->dptr = talloc_size(call, sizeof(NTSTATUS));
- call->reply_data->dsize = sizeof(NTSTATUS);
- if (call->reply_data->dptr == NULL) {
- return CTDB_ERR_NOMEM;
- }
- *(NTSTATUS *)call->reply_data->dptr = status;
+ call->status = NT_STATUS_V(status);
return 0;
}
@@ -586,7 +562,6 @@ static NTSTATUS brl_ctdb_unlock(struct brl_context *brl,
{
struct ctdb_call call;
struct ctdb_unlock_req req;
- NTSTATUS status;
int ret;
call.call_id = FUNC_BRL_UNLOCK;
@@ -609,10 +584,7 @@ static NTSTATUS brl_ctdb_unlock(struct brl_context *brl,
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
- status = *(NTSTATUS *)call.reply_data.dptr;
- talloc_free(call.reply_data.dptr);
-
- return status;
+ return NT_STATUS(call.status);
}
@@ -669,17 +641,7 @@ static int brl_ctdb_remove_pending_func(struct ctdb_call_info *call)
status = NT_STATUS_RANGE_NOT_LOCKED;
}
- call->reply_data = talloc(call, TDB_DATA);
- if (call->reply_data == NULL) {
- return CTDB_ERR_NOMEM;
- }
-
- call->reply_data->dptr = talloc_size(call, sizeof(NTSTATUS));
- call->reply_data->dsize = sizeof(NTSTATUS);
- if (call->reply_data->dptr == NULL) {
- return CTDB_ERR_NOMEM;
- }
- *(NTSTATUS *)call->reply_data->dptr = status;
+ call->status = NT_STATUS_V(status);
return 0;
}
@@ -690,7 +652,6 @@ static NTSTATUS brl_ctdb_remove_pending(struct brl_context *brl,
{
struct ctdb_call call;
struct ctdb_remove_pending_req req;
- NTSTATUS status;
int ret;
call.call_id = FUNC_BRL_REMOVE_PENDING;
@@ -709,10 +670,7 @@ static NTSTATUS brl_ctdb_remove_pending(struct brl_context *brl,
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
- status = *(NTSTATUS *)call.reply_data.dptr;
- talloc_free(call.reply_data.dptr);
-
- return status;
+ return NT_STATUS(call.status);
}
@@ -760,17 +718,7 @@ static int brl_ctdb_locktest_func(struct ctdb_call_info *call)
}
}
- call->reply_data = talloc(call, TDB_DATA);
- if (call->reply_data == NULL) {
- return CTDB_ERR_NOMEM;
- }
-
- call->reply_data->dptr = talloc_size(call, sizeof(NTSTATUS));
- call->reply_data->dsize = sizeof(NTSTATUS);
- if (call->reply_data->dptr == NULL) {
- return CTDB_ERR_NOMEM;
- }
- *(NTSTATUS *)call->reply_data->dptr = status;
+ call->status = NT_STATUS_V(status);
return 0;
}
@@ -786,7 +734,6 @@ static NTSTATUS brl_ctdb_locktest(struct brl_context *brl,
{
struct ctdb_call call;
struct ctdb_locktest_req req;
- NTSTATUS status;
int ret;
call.call_id = FUNC_BRL_LOCKTEST;
@@ -810,10 +757,7 @@ static NTSTATUS brl_ctdb_locktest(struct brl_context *brl,
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
- status = *(NTSTATUS *)call.reply_data.dptr;
- talloc_free(call.reply_data.dptr);
-
- return status;
+ return NT_STATUS(call.status);
}
@@ -874,17 +818,7 @@ static int brl_ctdb_close_func(struct ctdb_call_info *call)
memcpy(call->new_data->dptr, locks, count*sizeof(struct lock_struct));
}
- call->reply_data = talloc(call, TDB_DATA);
- if (call->reply_data == NULL) {
- return CTDB_ERR_NOMEM;
- }
-
- call->reply_data->dptr = talloc_size(call, sizeof(NTSTATUS));
- call->reply_data->dsize = sizeof(NTSTATUS);
- if (call->reply_data->dptr == NULL) {
- return CTDB_ERR_NOMEM;
- }
- *(NTSTATUS *)call->reply_data->dptr = status;
+ call->status = NT_STATUS_V(status);
return 0;
}
@@ -897,7 +831,6 @@ static NTSTATUS brl_ctdb_close(struct brl_context *brl,
{
struct ctdb_call call;
struct ctdb_close_req req;
- NTSTATUS status;
int ret;
call.call_id = FUNC_BRL_CLOSE;
@@ -917,10 +850,7 @@ static NTSTATUS brl_ctdb_close(struct brl_context *brl,
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
- status = *(NTSTATUS *)call.reply_data.dptr;
- talloc_free(call.reply_data.dptr);
-
- return status;
+ return NT_STATUS(call.status);
}