@@ -422,7 +422,6 @@ pg_tde_write_key_map_entry(const RelFileLocator *rlocator, InternalKey *rel_key_
422
422
char db_map_path [MAXPGPATH ];
423
423
int map_fd ;
424
424
off_t curr_pos = 0 ;
425
- off_t prev_pos = 0 ;
426
425
TDEMapEntry write_map_entry ;
427
426
TDESignedPrincipalKeyInfo signed_key_Info ;
428
427
@@ -434,7 +433,6 @@ pg_tde_write_key_map_entry(const RelFileLocator *rlocator, InternalKey *rel_key_
434
433
435
434
/* Open and validate file for basic correctness. */
436
435
map_fd = pg_tde_open_file_write (db_map_path , & signed_key_Info , false, & curr_pos );
437
- prev_pos = curr_pos ;
438
436
439
437
/*
440
438
* Read until we find an empty slot. Otherwise, read until end. This seems
@@ -444,13 +442,19 @@ pg_tde_write_key_map_entry(const RelFileLocator *rlocator, InternalKey *rel_key_
444
442
while (1 )
445
443
{
446
444
TDEMapEntry read_map_entry ;
445
+ off_t prev_pos = curr_pos ;
447
446
448
- prev_pos = curr_pos ;
449
447
if (!pg_tde_read_one_map_entry (map_fd , & read_map_entry , & curr_pos ))
448
+ {
449
+ curr_pos = prev_pos ;
450
450
break ;
451
+ }
451
452
452
453
if (read_map_entry .flags == MAP_ENTRY_EMPTY )
454
+ {
455
+ curr_pos = prev_pos ;
453
456
break ;
457
+ }
454
458
}
455
459
456
460
/* Initialize map entry and encrypt key */
@@ -468,12 +472,8 @@ pg_tde_write_key_map_entry(const RelFileLocator *rlocator, InternalKey *rel_key_
468
472
XLogInsert (RM_TDERMGR_ID , XLOG_TDE_ADD_RELATION_KEY );
469
473
}
470
474
471
- /*
472
- * Write the given entry at the location pointed by prev_pos; i.e. the
473
- * free entry
474
- */
475
- curr_pos = prev_pos ;
476
- pg_tde_write_one_map_entry (map_fd , & write_map_entry , & prev_pos , db_map_path );
475
+ /* Write the given entry at curr_pos; i.e. the free entry. */
476
+ pg_tde_write_one_map_entry (map_fd , & write_map_entry , & curr_pos , db_map_path );
477
477
478
478
close (map_fd );
479
479
}
@@ -490,15 +490,13 @@ pg_tde_write_key_map_entry_redo(const TDEMapEntry *write_map_entry, TDESignedPri
490
490
char db_map_path [MAXPGPATH ];
491
491
int map_fd ;
492
492
off_t curr_pos = 0 ;
493
- off_t prev_pos = 0 ;
494
493
495
494
pg_tde_set_db_file_path (signed_key_info -> data .databaseId , db_map_path );
496
495
497
496
LWLockAcquire (tde_lwlock_enc_keys (), LW_EXCLUSIVE );
498
497
499
498
/* Open and validate file for basic correctness. */
500
499
map_fd = pg_tde_open_file_write (db_map_path , signed_key_info , false, & curr_pos );
501
- prev_pos = curr_pos ;
502
500
503
501
/*
504
502
* Read until we find an empty slot. Otherwise, read until end. This seems
@@ -508,21 +506,23 @@ pg_tde_write_key_map_entry_redo(const TDEMapEntry *write_map_entry, TDESignedPri
508
506
while (1 )
509
507
{
510
508
TDEMapEntry read_map_entry ;
509
+ off_t prev_pos = curr_pos ;
511
510
512
- prev_pos = curr_pos ;
513
511
if (!pg_tde_read_one_map_entry (map_fd , & read_map_entry , & curr_pos ))
512
+ {
513
+ curr_pos = prev_pos ;
514
514
break ;
515
+ }
515
516
516
517
if (read_map_entry .flags == MAP_ENTRY_EMPTY )
518
+ {
519
+ curr_pos = prev_pos ;
517
520
break ;
521
+ }
518
522
}
519
523
520
- /*
521
- * Write the given entry at the location pointed by prev_pos; i.e. the
522
- * free entry
523
- */
524
- curr_pos = prev_pos ;
525
- pg_tde_write_one_map_entry (map_fd , write_map_entry , & prev_pos , db_map_path );
524
+ /* Write the given entry at curr_pos; i.e. the free entry. */
525
+ pg_tde_write_one_map_entry (map_fd , write_map_entry , & curr_pos , db_map_path );
526
526
527
527
close (map_fd );
528
528
0 commit comments