Fix all psync_list_for_each_element_call to use pmem_free wrappers

This commit is contained in:
Levi Neely 2026-03-08 20:05:32 +01:00
parent bad3430968
commit df102c98f3
9 changed files with 35 additions and 27 deletions

View File

@ -863,7 +863,7 @@ static int task_download_file(download_task_t *dt) {
// fileid);
pdbg_logf(D_NOTICE, "file downloaded %s", dt->localname);
pdbg_write_fs_event("file downloaded %s", dt->localname);
psync_list_for_each_element_call(&ranges, psync_range_list_t, list, free);
psync_list_for_each_element_call(&ranges, psync_range_list_t, list, free_download_range_list);
if (tmpold) {
pfile_delete(tmpold);
pmem_free(PMEM_SUBSYS_DOWNLOAD, tmpold);
@ -878,7 +878,7 @@ err2:
err1:
pfile_close(fd);
err0:
psync_list_for_each_element_call(&ranges, psync_range_list_t, list, free);
psync_list_for_each_element_call(&ranges, psync_range_list_t, list, free_download_range_list);
if (tmpold) {
pfile_delete(tmpold);
pmem_free(PMEM_SUBSYS_DOWNLOAD, tmpold);

View File

@ -2117,7 +2117,7 @@ static void pfs_upld_check_tasks() {
psql_lock();
current_upload_batch = NULL;
psql_unlock();
psync_list_for_each_element_call(&tasks, fsupload_task_t, list, free);
psync_list_for_each_element_call(&tasks, fsupload_task_t, list, free_fsupload_task);
}
static void pfs_upld_thread() {

View File

@ -296,9 +296,9 @@ void *psync_list_builder_finalize(psync_list_builder_t *builder) {
}
}
psync_list_for_each_element_call(&builder->element_list, psync_list_element_list, list, free);
psync_list_for_each_element_call(&builder->string_list, psync_list_string_list, list, free);
psync_list_for_each_element_call(&builder->number_list, psync_list_num_list, list, free);
psync_list_for_each_element_call(&builder->element_list, psync_list_element_list, list, free_list_element);
psync_list_for_each_element_call(&builder->string_list, psync_list_string_list, list, free_list_string);
psync_list_for_each_element_call(&builder->number_list, psync_list_num_list, list, free_list_num);
pmem_free(PMEM_SUBSYS_OTHER, builder);
return ret;
}

View File

@ -305,6 +305,14 @@ static void scanner_local_entry_to_list(void *ptr, ppath_stat *st) {
psync_list_add_tail(lst, &e->list);
}
static void free_sync_folderlist(sync_folderlist *elem) {
pmem_free(PMEM_SUBSYS_SYNC, elem);
}
static void free_sync_list(sync_list *elem) {
pmem_free(PMEM_SUBSYS_SYNC, elem);
}
static int scanner_local_folder_to_list(const char *localpath,
psync_list *lst) {
psync_list_init(lst);
@ -560,7 +568,7 @@ scanner_scan_folder(const char *localpath, psync_folderid_t folderid,
add_deleted_element(fdb, folderid, localfolderid, syncid, synctype);
ldb = ldb->next;
}
psync_list_for_each_element_call(&dblist, sync_folderlist, list, free);
psync_list_for_each_element_call(&dblist, sync_folderlist, list, free_sync_folderlist);
if (localsleepperfolder) {
psys_sleep_milliseconds(localsleepperfolder);
if (__atomic_load_n(&psync_current_time, __ATOMIC_RELAXED) - starttime >=
@ -576,7 +584,7 @@ scanner_scan_folder(const char *localpath, psync_folderid_t folderid,
pmem_free(PMEM_SUBSYS_SYNC, subpath);
}
psync_list_for_each_element_call(&disklist, sync_folderlist, list, free);
psync_list_for_each_element_call(&disklist, sync_folderlist, list, free_sync_folderlist);
}
static int compare_sizeinodemtime(const psync_list *l1, const psync_list *l2) {
@ -1038,8 +1046,8 @@ restart:
break;
}
}
psync_list_for_each_element_call(&slist, sync_list, list, free);
psync_list_for_each_element_call(&slist_full_deviceid, sync_list, list, free);
psync_list_for_each_element_call(&slist, sync_list, list, free_sync_list);
psync_list_for_each_element_call(&slist_full_deviceid, sync_list, list, free_sync_list);
w = 0;
do {
@ -1047,7 +1055,7 @@ restart:
if (unlikely(restart_scan)) {
pthread_mutex_unlock(&scan_mutex);
for (i = 0; i < SCAN_LIST_CNT; i++)
psync_list_for_each_element_call(&scan_lists[i], sync_folderlist, list, free);
psync_list_for_each_element_call(&scan_lists[i], sync_folderlist, list, free_sync_folderlist);
psys_sleep_milliseconds(restartsleep);
if (restartsleep < 16000)
restartsleep *= 2;
@ -1073,9 +1081,9 @@ restart:
w++;
check_for_query_cnt();
}
psync_list_for_each_element_call(&scan_lists[SCAN_LIST_RENFOLDERSROM], sync_folderlist, list, free);
psync_list_for_each_element_call(&scan_lists[SCAN_LIST_RENFOLDERSROM], sync_folderlist, list, free_sync_folderlist);
psync_list_init(&scan_lists[SCAN_LIST_RENFOLDERSROM]);
psync_list_for_each_element_call(&scan_lists[SCAN_LIST_RENFOLDERSTO], sync_folderlist, list, free);
psync_list_for_each_element_call(&scan_lists[SCAN_LIST_RENFOLDERSTO], sync_folderlist, list, free_sync_folderlist);
psync_list_init(&scan_lists[SCAN_LIST_RENFOLDERSTO]);
psync_list_for_each_element(fl, &scan_lists[SCAN_LIST_NEWFOLDERS],
sync_folderlist, list) {
@ -1093,7 +1101,7 @@ restart:
}
psync_list_for_each_element_call(&newtmp, sync_folderlist, list,
scan_created_folder);
psync_list_for_each_element_call(&newtmp, sync_folderlist, list, free);
psync_list_for_each_element_call(&newtmp, sync_folderlist, list, free_sync_folderlist);
}
if (changes) {
i++;
@ -1105,7 +1113,7 @@ restart:
if (unlikely(restart_scan)) {
pthread_mutex_unlock(&scan_mutex);
for (i = 0; i < SCAN_LIST_CNT; i++)
psync_list_for_each_element_call(&scan_lists[i], sync_folderlist, list, free);
psync_list_for_each_element_call(&scan_lists[i], sync_folderlist, list, free_sync_folderlist);
psys_sleep_milliseconds(restartsleep);
if (restartsleep < 16000)
restartsleep *= 2;
@ -1161,7 +1169,7 @@ restart:
pstatus_upload_recalc_async();
}
for (i = 0; i < SCAN_LIST_CNT; i++)
psync_list_for_each_element_call(&scan_lists[i], sync_folderlist, list, free);
psync_list_for_each_element_call(&scan_lists[i], sync_folderlist, list, free_sync_folderlist);
if (movedfolders) {
starttime = __atomic_load_n(&psync_current_time, __ATOMIC_RELAXED);
restartsleep = 1000;

View File

@ -2128,7 +2128,7 @@ int psync_net_download_ranges(psync_list *ranges, psync_fileid_t fileid,
range->off + range->len != blockactions[i].off))) {
range = pmem_malloc(PMEM_SUBSYS_OTHER, sizeof(psync_range_list_t));
if (!range) {
psync_list_for_each_element_call(ranges, psync_range_list_t, list, free);
psync_list_for_each_element_call(ranges, psync_range_list_t, list, free_range_list);
pmem_free(PMEM_SUBSYS_OTHER, blockactions);
pmem_free(PMEM_SUBSYS_OTHER, checksums);
return PSYNC_NET_TEMPFAIL;
@ -2227,7 +2227,7 @@ static int check_range_for_blocks(psync_file_checksums *checksums,
if (!ur) {
pmem_free(PMEM_SUBSYS_OTHER, buff);
pfile_close(fd);
psync_list_for_each_element_call(nr, psync_upload_range_list_t, list, free);
psync_list_for_each_element_call(nr, psync_upload_range_list_t, list, free_upload_range_list_net);
return -1;
}
ur->uploadoffset = off + buffoff + outbyteoff;
@ -2336,7 +2336,7 @@ static void merge_list_to_element(psync_upload_range_list_t *le,
} else {
n = pmem_malloc(PMEM_SUBSYS_OTHER, sizeof(psync_upload_range_list_t));
if (!n) {
psync_list_for_each_element_call(rlist, psync_upload_range_list_t, list, free);
psync_list_for_each_element_call(rlist, psync_upload_range_list_t, list, free_upload_range_list_net);
return;
}
n->uploadoffset = n->off = ur->uploadoffset + ur->len;

View File

@ -3398,8 +3398,8 @@ int ppagecache_read_unmod_enc_locked(psync_openfile_t *of,
if (!ret)
ret = size;
ret0:
psync_list_for_each_element_call(&waiting, psync_page_waiter_t, listwaiter, free);
psync_list_for_each_element_call(&auth_pages, psync_crypto_auth_page, list, free);
psync_list_for_each_element_call(&waiting, psync_page_waiter_t, listwaiter, free_page_waiter);
psync_list_for_each_element_call(&auth_pages, psync_crypto_auth_page, list, free_crypto_auth_page);
for (i = 0; i < pagecnt; i++)
if (dp[i].freebuff)
pmem_free(PMEM_SUBSYS_CACHE, dp[i].buff);

View File

@ -265,7 +265,7 @@ psuggested_folders_t *psuggest_scan_folder(const char *path) {
pdbg_logf(D_NOTICE, "suggesting %s (%s, %s)", ret->entries[i].localpath,
ret->entries[i].name, ret->entries[i].description);
}
psync_list_for_each_element_call(&suggestions, suggested_folder, list, free);
psync_list_for_each_element_call(&suggestions, suggested_folder, list, free_suggested_folder);
free_folder(f);
return ret;
}

View File

@ -141,7 +141,7 @@ PSYNC_NOINLINE static void timer_process_timers(psync_list *timers) {
}
}
pthread_mutex_unlock(&timer_mutex);
psync_list_for_each_element_call(timers, psync_timer_structure_t, list, free);
psync_list_for_each_element_call(timers, psync_timer_structure_t, list, free_timer);
}
static void timer_thread() {

View File

@ -1027,7 +1027,7 @@ static int upload_big_file(const char *localpath, const unsigned char *hashhex,
if (unlikely(fd == INVALID_HANDLE_VALUE)) {
pdbg_logf(D_WARNING, "could not open local file %s", localpath);
psync_apipool_release(api);
psync_list_for_each_element_call(&rlist, psync_upload_range_list_t, list, free);
psync_list_for_each_element_call(&rlist, psync_upload_range_list_t, list, free_upload_range_list);
return -1;
}
if (likely(uploadoffset < fsize)) {
@ -1240,7 +1240,7 @@ static int upload_big_file(const char *localpath, const unsigned char *hashhex,
respwait++;
uploadoffset += le->len;
}
psync_list_for_each_element_call(&rlist, psync_upload_range_list_t, list, free);
psync_list_for_each_element_call(&rlist, psync_upload_range_list_t, list, free_upload_range_list);
if (pfile_size(fd) != fsize) {
pdbg_logf(D_NOTICE, "file %s changed filesize while uploading, restarting task",
localpath);
@ -1260,13 +1260,13 @@ static int upload_big_file(const char *localpath, const unsigned char *hashhex,
}
err1:
pfile_close(fd);
psync_list_for_each_element_call(&rlist, psync_upload_range_list_t, list, free);
psync_list_for_each_element_call(&rlist, psync_upload_range_list_t, list, free_upload_range_list);
err0:
psync_apipool_release_bad(api);
return -1;
errp:
pfile_close(fd);
psync_list_for_each_element_call(&rlist, psync_upload_range_list_t, list, free);
psync_list_for_each_element_call(&rlist, psync_upload_range_list_t, list, free_upload_range_list);
psync_apipool_release_bad(api);
return 0;
}