diff --git a/src/backend/storage/ipc/dsm_registry.c b/src/backend/storage/ipc/dsm_registry.c index af3680f9d5d..9f58ea611b9 100644 --- a/src/backend/storage/ipc/dsm_registry.c +++ b/src/backend/storage/ipc/dsm_registry.c @@ -45,7 +45,6 @@ typedef struct DSMRegistryEntry char name[64]; dsm_handle handle; size_t size; - bool initialized; } DSMRegistryEntry; static const dshash_parameters dsh_params = { @@ -159,12 +158,8 @@ GetNamedDSMSegment(const char *name, size_t size, entry = dshash_find_or_insert(dsm_registry_table, name, found); if (!(*found)) { - dsm_segment *seg; - - entry->initialized = false; - /* Initialize the segment. */ - seg = dsm_create(size, 0); + dsm_segment *seg = dsm_create(size, 0); dsm_pin_segment(seg); dsm_pin_mapping(seg); @@ -174,17 +169,13 @@ GetNamedDSMSegment(const char *name, size_t size, if (init_callback) (*init_callback) (ret); - - entry->initialized = true; } - else if (!entry->initialized) - ereport(ERROR, - (errmsg("requested DSM segment \"%s\" failed initialization", - name))); else if (entry->size != size) + { ereport(ERROR, - (errmsg("requested DSM segment \"%s\" does not match size of existing entry", - name))); + (errmsg("requested DSM segment size does not match size of " + "existing segment"))); + } else { dsm_segment *seg = dsm_find_mapping(entry->handle);