From: Volker Lendecke Date: Wed, 11 Jan 2023 10:02:11 +0000 (+0100) Subject: smbd: Remove smbXsrv_open_global0->db_rec X-Git-Tag: talloc-2.4.1~1626 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc4e11d02826526e61e85e1a939c515d01323dcb;p=thirdparty%2Fsamba.git smbd: Remove smbXsrv_open_global0->db_rec The only user by now was net serverid wipedbs, and there it was easy to replace Signed-off-by: Volker Lendecke Reviewed-by: Stefan Metzmacher Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Mon Feb 13 10:49:43 UTC 2023 on atb-devel-224 --- diff --git a/source3/librpc/idl/smbXsrv.idl b/source3/librpc/idl/smbXsrv.idl index e0a751f32de..173bc64db77 100644 --- a/source3/librpc/idl/smbXsrv.idl +++ b/source3/librpc/idl/smbXsrv.idl @@ -459,7 +459,6 @@ interface smbXsrv } smbXsrv_open_flags; typedef struct { - [ignore] db_record *db_rec; server_id server_id; uint32 open_global_id; hyper open_persistent_id; diff --git a/source3/smbd/smbXsrv_open.c b/source3/smbd/smbXsrv_open.c index 18a544b5587..3975a7e6cff 100644 --- a/source3/smbd/smbXsrv_open.c +++ b/source3/smbd/smbXsrv_open.c @@ -747,13 +747,6 @@ NTSTATUS smbXsrv_open_update(struct smbXsrv_open *op) op->global->open_global_id, &key_buf); NTSTATUS status; - if (op->global->db_rec != NULL) { - DEBUG(0, ("smbXsrv_open_update(0x%08x): " - "Called with db_rec != NULL'\n", - op->global->open_global_id)); - return NT_STATUS_INTERNAL_ERROR; - } - status = dbwrap_do_locked( table->global.db_ctx, key, smbXsrv_open_update_fn, &state); if (!NT_STATUS_IS_OK(status)) { @@ -1365,7 +1358,7 @@ fail: } struct smbXsrv_open_global_traverse_state { - int (*fn)(struct smbXsrv_open_global0 *, void *); + int (*fn)(struct db_record *rec, struct smbXsrv_open_global0 *, void *); void *private_data; }; @@ -1385,15 +1378,14 @@ static int smbXsrv_open_global_traverse_fn(struct db_record *rec, void *data) return -1; } - global->db_rec = rec; - ret = state->fn(global, state->private_data); + ret = state->fn(rec, global, state->private_data); talloc_free(global); return ret; } NTSTATUS smbXsrv_open_global_traverse( - int (*fn)(struct smbXsrv_open_global0 *, void *), - void *private_data) + int (*fn)(struct db_record *rec, struct smbXsrv_open_global0 *, void *), + void *private_data) { NTSTATUS status; diff --git a/source3/smbd/smbXsrv_open.h b/source3/smbd/smbXsrv_open.h index 39905506b95..02576501237 100644 --- a/source3/smbd/smbXsrv_open.h +++ b/source3/smbd/smbXsrv_open.h @@ -64,8 +64,10 @@ NTSTATUS smb2srv_open_recreate(struct smbXsrv_connection *conn, const struct GUID *create_guid, NTTIME now, struct smbXsrv_open **_open); + +struct db_record; NTSTATUS smbXsrv_open_global_traverse( - int (*fn)(struct smbXsrv_open_global0 *, void *), + int (*fn)(struct db_record *rec, struct smbXsrv_open_global0 *, void *), void *private_data); NTSTATUS smbXsrv_open_cleanup(uint64_t persistent_id); diff --git a/source3/utils/net_serverid.c b/source3/utils/net_serverid.c index b98a1732983..a01c0d5d021 100644 --- a/source3/utils/net_serverid.c +++ b/source3/utils/net_serverid.c @@ -232,7 +232,8 @@ done: return ret; } -static int wipedbs_traverse_open(struct smbXsrv_open_global0 *open, +static int wipedbs_traverse_open(struct db_record *db_rec, + struct smbXsrv_open_global0 *open, void *wipedbs_state) { struct wipedbs_state *state = @@ -300,9 +301,9 @@ static int wipedbs_traverse_open(struct smbXsrv_open_global0 *open, goto done; } - tmp = dbwrap_record_get_key(open->db_rec); + tmp = dbwrap_record_get_key(db_rec); rec->key = tdb_data_talloc_copy(rec, tmp); - tmp = dbwrap_record_get_value(open->db_rec); + tmp = dbwrap_record_get_value(db_rec); rec->val = tdb_data_talloc_copy(rec, tmp); rec->desc = talloc_asprintf( @@ -318,7 +319,7 @@ static int wipedbs_traverse_open(struct smbXsrv_open_global0 *open, goto done; } - state->open_db = dbwrap_record_get_db(open->db_rec); + state->open_db = dbwrap_record_get_db(db_rec); DLIST_ADD(sd->open_records, rec); ret = 0;