diff options
Diffstat (limited to 'src/backend/storage')
-rw-r--r-- | src/backend/storage/sync/sync.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/backend/storage/sync/sync.c b/src/backend/storage/sync/sync.c index 705f229b27f..f329c3fd667 100644 --- a/src/backend/storage/sync/sync.c +++ b/src/backend/storage/sync/sync.c @@ -452,9 +452,7 @@ RememberSyncRequest(const FileTag *ftag, SyncRequestType type) { HASH_SEQ_STATUS hstat; PendingFsyncEntry *entry; - ListCell *cell, - *prev, - *next; + ListCell *cell; /* Cancel matching fsync requests */ hash_seq_init(&hstat, pendingOps); @@ -466,20 +464,16 @@ RememberSyncRequest(const FileTag *ftag, SyncRequestType type) } /* Remove matching unlink requests */ - prev = NULL; - for (cell = list_head(pendingUnlinks); cell; cell = next) + foreach(cell, pendingUnlinks) { PendingUnlinkEntry *entry = (PendingUnlinkEntry *) lfirst(cell); - next = lnext(cell); if (entry->tag.handler == ftag->handler && syncsw[ftag->handler].sync_filetagmatches(ftag, &entry->tag)) { - pendingUnlinks = list_delete_cell(pendingUnlinks, cell, prev); + pendingUnlinks = foreach_delete_current(pendingUnlinks, cell); pfree(entry); } - else - prev = cell; } } else if (type == SYNC_UNLINK_REQUEST) |