l->epoch += 1;
}
+ {
+ NTSTATUS set_status;
+
+ set_status = leases_db_set(
+ client_guid,
+ &lease->lease_key,
+ l->current_state,
+ l->breaking,
+ l->breaking_to_requested,
+ l->breaking_to_required,
+ l->lease_version,
+ l->epoch);
+
+ if (!NT_STATUS_IS_OK(set_status)) {
+ DBG_DEBUG("leases_db_set failed: %s\n",
+ nt_errstr(set_status));
+ return set_status;
+ }
+ }
+
/* Ensure we're in sync with current lease state. */
fsp_lease_update(lck, fsp_client_guid(fsp), fsp->lease);
return NT_STATUS_OK;
#include "smbd/smbd.h"
#include "smbd/globals.h"
#include "messages.h"
+#include "locking/leases_db.h"
#include "../librpc/gen_ndr/ndr_open_files.h"
/*
l->breaking = false;
lck->data->modified = true;
+
+ {
+ NTSTATUS set_status;
+
+ set_status = leases_db_set(
+ &sconn->client->connections->
+ smb2.client.guid,
+ key,
+ l->current_state,
+ l->breaking,
+ l->breaking_to_requested,
+ l->breaking_to_required,
+ l->lease_version,
+ l->epoch);
+
+ if (!NT_STATUS_IS_OK(set_status)) {
+ DBG_DEBUG("leases_db_set failed: %s\n",
+ nt_errstr(set_status));
+ return set_status;
+ }
+ }
}
tevent_schedule_immediate(state->im,
d->modified = true;
}
+ {
+ NTSTATUS set_status;
+
+ set_status = leases_db_set(
+ &sconn->client->connections->smb2.client.guid,
+ key,
+ l->current_state,
+ l->breaking,
+ l->breaking_to_requested,
+ l->breaking_to_required,
+ l->lease_version,
+ l->epoch);
+
+ if (!NT_STATUS_IS_OK(set_status)) {
+ DBG_DEBUG("leases_db_set failed: %s\n",
+ nt_errstr(set_status));
+ return set_status;
+ }
+ }
+
DEBUG(10, ("%s: Downgrading %s to %x => %s\n", __func__,
file_id_string_tos(&id), (unsigned)lease_state, nt_errstr(status)));
lck->data->modified = true;
}
+ {
+ NTSTATUS set_status;
+
+ set_status = leases_db_set(
+ &sconn->client->connections->
+ smb2.client.guid,
+ &fsp->lease->lease.lease_key,
+ l->current_state,
+ l->breaking,
+ l->breaking_to_requested,
+ l->breaking_to_required,
+ l->lease_version,
+ l->epoch);
+
+ if (!NT_STATUS_IS_OK(set_status)) {
+ DBG_DEBUG("leases_db_set failed: %s\n",
+ nt_errstr(set_status));
+ return;
+ }
+ }
+
/* Ensure we're in sync with current lease state. */
fsp_lease_update(lck, fsp_client_guid(fsp), fsp->lease);
}