return ret;
}
-#if 0
-static int ctdb_g_lock_lock_update(struct ctdb_g_lock_lock_state *state,
- struct ctdb_g_lock_list *lock_list,
- struct ctdb_record_handle *h)
-{
- struct ctdb_g_lock *lock;
- bool conflict = false;
- bool modified = false;
- int ret, i;
-
- for (i=0; i<lock_list->num; i++) {
- lock = &lock_list->lock[i];
-
- /* We should not ask for lock more than once */
- if (ctdb_server_id_equal(&lock->sid, &state->my_sid)) {
- return EDEADLK;
- }
-
- if (ctdb_g_lock_conflicts(lock->type, state->lock_type)) {
- bool exists;
-
- conflict = true;
- ret = ctdb_server_id_exists(state->client, &lock->sid,
- &exists);
- if (ret != 0) {
- return ret;
- }
-
- if (exists) {
- break;
- }
-
- /* Server does not exist, delete conflicting entry */
- lock_list->lock[i] = lock_list->lock[lock_list->num-1];
- lock_list->num -= 1;
- modified = true;
- }
- }
-
- if (! conflict) {
- lock = talloc_realloc(lock_list, lock_list->lock,
- struct ctdb_g_lock, lock_list->num+1);
- if (lock == NULL) {
- return ENOMEM;
- }
-
- lock[lock_list->num].type = state->lock_type;
- lock[lock_list->num].sid = state->my_sid;
- lock_list->lock = lock;
- lock_list->num += 1;
- modified = true;
- }
-
- if (modified) {
- TDB_DATA data;
-
- data.dsize = ctdb_g_lock_list_len(lock_list);
- data.dptr = talloc_size(state, data.dsize);
- if (data.dptr == NULL) {
- return ENOMEM;
- }
-
- ctdb_g_lock_list_push(lock_list, data.dptr);
- ret = ctdb_store_record(h, data);
- talloc_free(data.dptr);
- if (ret != 0) {
- return ret;
- }
- }
-
- if (conflict) {
- return EAGAIN;
- }
- return 0;
-}
-#endif
-
static void ctdb_g_lock_lock_retry(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(