From fd19b075aec2a89b82466b6eb0474b81e0a748f4 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Sun, 8 Mar 2026 16:17:12 +0100 Subject: [PATCH] Migrate pfstasks.c malloc/free to pmem_malloc/pmem_free --- pclsync/pfstasks.c | 141 +++++++++++++++++++++++---------------------- 1 file changed, 71 insertions(+), 70 deletions(-) diff --git a/pclsync/pfstasks.c b/pclsync/pfstasks.c index ba87534..75db4dc 100644 --- a/pclsync/pfstasks.c +++ b/pclsync/pfstasks.c @@ -42,6 +42,7 @@ #include "pfstasks.h" #include "pfsupload.h" #include "plibs.h" +#include "pmem.h" #include "ppathstatus.h" #include "psettings.h" #include "psql.h" @@ -122,7 +123,7 @@ pfs_task_get_or_create_folder_tasks_locked(psync_fsfolderid_t folderid) { } } - folder = malloc(sizeof(psync_fstask_folder_t)); + folder = pmem_malloc(PMEM_SUBSYS_SYNC, sizeof(psync_fstask_folder_t)); if (!folder) return NULL; memset(folder, 0, sizeof(psync_fstask_folder_t)); @@ -187,7 +188,7 @@ void pfs_task_release_folder_tasks_locked(psync_fstask_folder_t *folder) { if (--folder->refcnt == 0 && !folder->taskscnt) { pdbg_logf(D_NOTICE, "releasing folder id %ld", (long int)folder->folderid); ptree_del(&folders, &folder->tree); - free(folder); + pmem_free(PMEM_SUBSYS_SYNC, folder); } } @@ -445,7 +446,7 @@ int pfs_task_mkdir(psync_fsfolderid_t folderid, const char *name, return -EIO; } len++; - task = (psync_fstask_mkdir_t *)malloc( + task = (psync_fstask_mkdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_mkdir_t, name) + len); if (!task) { pfs_task_release_folder_tasks_locked(folder); @@ -625,7 +626,7 @@ int pfs_task_rmdir(psync_fsfolderid_t folderid, uint32_t parentflags, } if (mk) { ptree_del(&folder->mkdirs, &mk->tree); - free(mk); + pmem_free(PMEM_SUBSYS_SYNC, mk); } if (cfolder) pfs_task_release_folder_tasks_locked(cfolder); @@ -653,7 +654,7 @@ int pfs_task_rmdir(psync_fsfolderid_t folderid, uint32_t parentflags, return -EIO; } len++; - task = (psync_fstask_rmdir_t *)malloc( + task = (psync_fstask_rmdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_rmdir_t, name) + len); if (!task) { pfs_task_release_folder_tasks_locked(folder); @@ -704,7 +705,7 @@ psync_fstask_creat_t *pfs_task_add_creat(psync_fstask_folder_t *folder, if (pdbg_unlikely(psql_commit())) return NULL; len++; - un = (psync_fstask_unlink_t *)malloc( + un = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + len); if (!un) return NULL; @@ -713,11 +714,11 @@ psync_fstask_creat_t *pfs_task_add_creat(psync_fstask_folder_t *folder, memcpy(un->name, name, len); pfs_task_insert_into_tree( &folder->unlinks, offsetof(psync_fstask_unlink_t, name), &un->tree); - task = (psync_fstask_creat_t *)malloc( + task = (psync_fstask_creat_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_creat_t, name) + len); if (!task) { ptree_del(&folder->unlinks, &un->tree); - free(un); + pmem_free(PMEM_SUBSYS_SYNC, un); return NULL; } task->fileid = -(psync_fsfileid_t)taskid; @@ -780,13 +781,13 @@ pfs_task_add_modified_file(psync_fstask_folder_t *folder, const char *name, if (task) { pfs_task_depend(taskid, task->taskid); ptree_del(&folder->creats, &task->tree); - free(task); + pmem_free(PMEM_SUBSYS_SYNC, task); folder->taskscnt--; } if (pdbg_unlikely(psql_commit())) return NULL; len++; - un = (psync_fstask_unlink_t *)malloc( + un = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + len); if (!un) return NULL; @@ -795,11 +796,11 @@ pfs_task_add_modified_file(psync_fstask_folder_t *folder, const char *name, memcpy(un->name, name, len); pfs_task_insert_into_tree( &folder->unlinks, offsetof(psync_fstask_unlink_t, name), &un->tree); - task = (psync_fstask_creat_t *)malloc( + task = (psync_fstask_creat_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_creat_t, name) + len); if (!task) { ptree_del(&folder->unlinks, &un->tree); - free(un); + pmem_free(PMEM_SUBSYS_SYNC, un); return NULL; } task->fileid = -(psync_fsfileid_t)taskid; @@ -882,7 +883,7 @@ int pfs_task_add_local_creat_static(psync_fsfolderid_t folderid, pdbg_logf(D_NOTICE, "adding file %s to folderid %ld, datalen %lu", name, (long)folderid, (unsigned long)datalen); len++; - un = (psync_fstask_unlink_t *)malloc( + un = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + len); if (!un) { ret = -ENOMEM; @@ -894,7 +895,7 @@ int pfs_task_add_local_creat_static(psync_fsfolderid_t folderid, pfs_task_insert_into_tree( &folder->unlinks, offsetof(psync_fstask_unlink_t, name), &un->tree); addlen = pfs_task_creat_local_offset(len - 1); - cr = (psync_fstask_creat_t *)malloc(addlen + + cr = (psync_fstask_creat_t *)pmem_malloc(PMEM_SUBSYS_SYNC, addlen + sizeof(psync_fstask_local_creat_t)); if (!cr) { ret = -ENOMEM; @@ -937,12 +938,12 @@ static psync_fsfileid_t get_file_at_old_location(psync_fsfileid_t fileid) { if (folder) { cr = pfs_task_find_creat(folder, rec->name, 0); if (cr) { - free(rec); + pmem_free(PMEM_SUBSYS_SYNC, rec); pfs_task_release_folder_tasks_locked(folder); return cr->fileid; } if (pfs_task_find_unlink(folder, rec->name, 0)) { - free(rec); + pmem_free(PMEM_SUBSYS_SYNC, rec); pfs_task_release_folder_tasks_locked(folder); return 0; } @@ -957,7 +958,7 @@ static psync_fsfileid_t get_file_at_old_location(psync_fsfileid_t fileid) { else ret = 0; psql_free(res); - free(rec); + pmem_free(PMEM_SUBSYS_SYNC, rec); return ret; } @@ -1042,10 +1043,10 @@ int pfs_task_unlink(psync_fsfolderid_t folderid, const char *name) { if (pdbg_likely(task)) { ptree_del(&folder->unlinks, &task->tree); folder->taskscnt--; - free(task); + pmem_free(PMEM_SUBSYS_SYNC, task); } ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; pfs_task_release_folder_tasks_locked(folder); return 0; @@ -1053,7 +1054,7 @@ int pfs_task_unlink(psync_fsfolderid_t folderid, const char *name) { depend = cr->taskid; fileid = cr->fileid; ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; if (folder->folderid >= 0) ppathstatus_drive_fldr_changed(folder->folderid); @@ -1097,7 +1098,7 @@ int pfs_task_unlink(psync_fsfolderid_t folderid, const char *name) { return -EIO; } len++; - task = (psync_fstask_unlink_t *)malloc( + task = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + len); if (!task) { pfs_task_release_folder_tasks_locked(folder); @@ -1122,9 +1123,9 @@ static void add_history_record(psync_fileid_t fileid, psync_folderid_t folderid, char key[16]; psync_get_string_id(key, "HLOC", fileid); while ((rec = (file_history_record *)pcache_get(key))) - free(rec); + pmem_free(PMEM_SUBSYS_SYNC, rec); len = strlen(name) + 1; - rec = (file_history_record *)malloc( + rec = (file_history_record *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(file_history_record, name) + len); if (!rec) return; @@ -1199,14 +1200,14 @@ int pfs_task_rename_file(psync_fsfileid_t fileid, } if (cr) { ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; if (folder->folderid >= 0) ppathstatus_drive_fldr_changed(folder->folderid); } pfs_rename_openfile_locked(fileid, to_folderid, new_name); nlen++; - rm = (psync_fstask_unlink_t *)malloc( + rm = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + nlen); if (!rm) { pfs_task_release_folder_tasks_locked(folder); @@ -1229,10 +1230,10 @@ int pfs_task_rename_file(psync_fsfileid_t fileid, if (cr->fileid < 0) pfs_task_stop_and_delete_file(cr->fileid); ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; } - rm = (psync_fstask_unlink_t *)malloc( + rm = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + nnlen); if (!rm) { pfs_task_release_folder_tasks_locked(folder); @@ -1243,7 +1244,7 @@ int pfs_task_rename_file(psync_fsfileid_t fileid, memcpy(rm->name, new_name, nnlen); pfs_task_insert_into_tree( &folder->unlinks, offsetof(psync_fstask_unlink_t, name), &rm->tree); - cr = (psync_fstask_creat_t *)malloc( + cr = (psync_fstask_creat_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_creat_t, name) + nnlen); if (!cr) { pfs_task_release_folder_tasks_locked(folder); @@ -1436,12 +1437,12 @@ int pfs_task_rename_folder(psync_fsfolderid_t folderid, if (mk) { ptree_del(&folder->mkdirs, &mk->tree); - free(mk); + pmem_free(PMEM_SUBSYS_SYNC, mk); folder->taskscnt--; } nlen++; - rm = (psync_fstask_rmdir_t *)malloc( + rm = (psync_fstask_rmdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_rmdir_t, name) + nlen); if (!rm) { pfs_task_release_folder_tasks_locked(folder); @@ -1462,12 +1463,12 @@ int pfs_task_rename_folder(psync_fsfolderid_t folderid, if (mk) { pdbg_logf(D_NOTICE, "renaming over mkdir %s", name); ptree_del(&folder->mkdirs, &mk->tree); - free(mk); + pmem_free(PMEM_SUBSYS_SYNC, mk); folder->taskscnt--; } nnlen++; - rm = (psync_fstask_rmdir_t *)malloc( + rm = (psync_fstask_rmdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_rmdir_t, name) + nnlen); if (!rm) { pfs_task_release_folder_tasks_locked(folder); @@ -1479,7 +1480,7 @@ int pfs_task_rename_folder(psync_fsfolderid_t folderid, pfs_task_insert_into_tree( &folder->rmdirs, offsetof(psync_fstask_rmdir_t, name), &rm->tree); - mk = (psync_fstask_mkdir_t *)malloc( + mk = (psync_fstask_mkdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_mkdir_t, name) + nnlen); if (!mk) { pfs_task_release_folder_tasks_locked(folder); @@ -1527,7 +1528,7 @@ void pfs_task_folder_created(psync_folderid_t parentfolderid, mk = pfs_task_find_mkdir(folder, name, taskid); if (mk) { ptree_del(&folder->mkdirs, &mk->tree); - free(mk); + pmem_free(PMEM_SUBSYS_SYNC, mk); folder->taskscnt--; pchg = 1; } @@ -1585,7 +1586,7 @@ void pfs_task_folder_deleted(psync_folderid_t parentfolderid, rm = pfs_task_find_rmdir(folder, name, taskid); if (rm) { ptree_del(&folder->rmdirs, &rm->tree); - free(rm); + pmem_free(PMEM_SUBSYS_SYNC, rm); folder->taskscnt--; } pfs_task_release_folder_tasks_locked(folder); @@ -1638,13 +1639,13 @@ void pfs_task_file_created(psync_folderid_t parentfolderid, uint64_t taskid, cr = pfs_task_find_creat(folder, name, taskid); if (cr) { ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; } un = pfs_task_find_unlink(folder, name, taskid); if (un) { ptree_del(&folder->unlinks, &un->tree); - free(un); + pmem_free(PMEM_SUBSYS_SYNC, un); folder->taskscnt--; } else pdbg_logf(D_NOTICE, "could not find unlink for file %s in folderid %lu", name, @@ -1670,13 +1671,13 @@ void pfs_task_file_modified(psync_folderid_t parentfolderid, cr = pfs_task_find_creat(folder, name, taskid); if (cr) { ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; } un = pfs_task_find_unlink(folder, name, taskid); if (un) { ptree_del(&folder->unlinks, &un->tree); - free(un); + pmem_free(PMEM_SUBSYS_SYNC, un); folder->taskscnt--; } pfs_task_release_folder_tasks_locked(folder); @@ -1696,7 +1697,7 @@ void pfs_task_file_deleted(psync_folderid_t parentfolderid, uint64_t taskid, un = pfs_task_find_unlink(folder, name, taskid); if (un) { ptree_del(&folder->unlinks, &un->tree); - free(un); + pmem_free(PMEM_SUBSYS_SYNC, un); folder->taskscnt--; } pfs_task_release_folder_tasks_locked(folder); @@ -1715,13 +1716,13 @@ void pfs_task_file_renamed(psync_folderid_t folderid, uint64_t taskid, un = pfs_task_find_unlink(folder, name, taskid); if (un) { ptree_del(&folder->unlinks, &un->tree); - free(un); + pmem_free(PMEM_SUBSYS_SYNC, un); folder->taskscnt--; } cr = pfs_task_find_creat(folder, name, taskid); if (cr) { ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; } pfs_task_release_folder_tasks_locked(folder); @@ -1737,7 +1738,7 @@ void pfs_task_file_renamed(psync_folderid_t folderid, uint64_t taskid, psync_get_number(row[0])); if (un) { ptree_del(&folder->unlinks, &un->tree); - free(un); + pmem_free(PMEM_SUBSYS_SYNC, un); folder->taskscnt--; } pfs_task_release_folder_tasks_locked(folder); @@ -1768,13 +1769,13 @@ void pfs_task_folder_renamed(psync_folderid_t parentfolderid, mk = pfs_task_find_mkdir(folder, name, taskid); if (mk) { ptree_del(&folder->mkdirs, &mk->tree); - free(mk); + pmem_free(PMEM_SUBSYS_SYNC, mk); folder->taskscnt--; } rm = pfs_task_find_rmdir(folder, name, taskid); if (rm) { ptree_del(&folder->rmdirs, &rm->tree); - free(rm); + pmem_free(PMEM_SUBSYS_SYNC, rm); folder->taskscnt--; } pfs_task_release_folder_tasks_locked(folder); @@ -1790,7 +1791,7 @@ void pfs_task_folder_renamed(psync_folderid_t parentfolderid, psync_get_number(row[0])); if (rm) { ptree_del(&folder->rmdirs, &rm->tree); - free(rm); + pmem_free(PMEM_SUBSYS_SYNC, rm); folder->taskscnt--; } pfs_task_release_folder_tasks_locked(folder); @@ -1822,7 +1823,7 @@ static void psync_init_task_mkdir(psync_variant_row row) { ctime = psync_get_number(row[6]); folder = pfs_task_get_or_create_folder_tasks_locked(folderid); len++; - task = (psync_fstask_mkdir_t *)malloc( + task = (psync_fstask_mkdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_mkdir_t, name) + len); if (!task) { pfs_task_release_folder_tasks_locked(folder); @@ -1858,11 +1859,11 @@ static void psync_init_task_rmdir(psync_variant_row row) { mk = pfs_task_find_mkdir(folder, name, 0); if (mk) { ptree_del(&folder->mkdirs, &mk->tree); - free(mk); + pmem_free(PMEM_SUBSYS_SYNC, mk); folder->taskscnt--; } len++; - task = (psync_fstask_rmdir_t *)malloc( + task = (psync_fstask_rmdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_rmdir_t, name) + len); if (!task) { pfs_task_release_folder_tasks_locked(folder); @@ -1890,7 +1891,7 @@ static void psync_init_task_creat(psync_variant_row row) { name = psync_get_lstring(row[4], &len); folder = pfs_task_get_or_create_folder_tasks_locked(folderid); len++; - un = (psync_fstask_unlink_t *)malloc( + un = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + len); if (!un) { pfs_task_release_folder_tasks_locked(folder); @@ -1901,7 +1902,7 @@ static void psync_init_task_creat(psync_variant_row row) { memcpy(un->name, name, len); pfs_task_insert_into_tree( &folder->unlinks, offsetof(psync_fstask_unlink_t, name), &un->tree); - task = (psync_fstask_creat_t *)malloc( + task = (psync_fstask_creat_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_creat_t, name) + len); if (!task) { pfs_task_release_folder_tasks_locked(folder); @@ -1930,11 +1931,11 @@ static void psync_init_do_task_unlink(uint64_t taskid, cr = pfs_task_find_creat(folder, name, 0); if (cr) { ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; } namelen++; - task = (psync_fstask_unlink_t *)malloc( + task = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + namelen); if (!task) { pfs_task_release_folder_tasks_locked(folder); @@ -1976,11 +1977,11 @@ static void psync_init_task_renfile_from(psync_variant_row row) { pfs_task_get_or_create_folder_tasks_locked(psync_get_number(row[2])); if ((cr = pfs_task_find_creat(folder, name, 0))) { ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; } len++; - rm = (psync_fstask_unlink_t *)malloc( + rm = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + len); if (!rm) { pfs_task_release_folder_tasks_locked(folder); @@ -2011,12 +2012,12 @@ static void psync_init_task_renfile_to(psync_variant_row row) { if (cr) { ptree_del(&folder->creats, &cr->tree); folder->taskscnt--; - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); } len++; taskid = psync_get_number(row[0]); fileid = psync_get_snumber(row[3]); - un = (psync_fstask_unlink_t *)malloc( + un = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + len); if (!un) { pfs_task_release_folder_tasks_locked(folder); @@ -2027,7 +2028,7 @@ static void psync_init_task_renfile_to(psync_variant_row row) { memcpy(un->name, name, len); pfs_task_insert_into_tree( &folder->unlinks, offsetof(psync_fstask_creat_t, name), &un->tree); - cr = (psync_fstask_creat_t *)malloc( + cr = (psync_fstask_creat_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_creat_t, name) + len); if (!cr) { pfs_task_release_folder_tasks_locked(folder); @@ -2057,11 +2058,11 @@ static void psync_init_task_renfolder_from(psync_variant_row row) { pfs_task_get_or_create_folder_tasks_locked(psync_get_number(row[2])); if ((mk = pfs_task_find_mkdir(folder, name, 0))) { ptree_del(&folder->mkdirs, &mk->tree); - free(mk); + pmem_free(PMEM_SUBSYS_SYNC, mk); folder->taskscnt--; } len++; - rm = (psync_fstask_rmdir_t *)malloc( + rm = (psync_fstask_rmdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_rmdir_t, name) + len); if (!rm) { pfs_task_release_folder_tasks_locked(folder); @@ -2090,7 +2091,7 @@ static void psync_init_task_renfolder_to(psync_variant_row row) { len++; taskid = psync_get_number(row[0]); folderid = psync_get_snumber(row[8]); - rm = (psync_fstask_rmdir_t *)malloc( + rm = (psync_fstask_rmdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_rmdir_t, name) + len); if (!rm) { pfs_task_release_folder_tasks_locked(folder); @@ -2101,7 +2102,7 @@ static void psync_init_task_renfolder_to(psync_variant_row row) { memcpy(rm->name, name, len); pfs_task_insert_into_tree( &folder->rmdirs, offsetof(psync_fstask_rmdir_t, name), &rm->tree); - mk = (psync_fstask_mkdir_t *)malloc( + mk = (psync_fstask_mkdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_mkdir_t, name) + len); if (!mk) { pfs_task_release_folder_tasks_locked(folder); @@ -2134,11 +2135,11 @@ static void psync_init_task_modify(psync_variant_row row) { cr = pfs_task_find_creat(folder, name, 0); if (cr) { ptree_del(&folder->creats, &cr->tree); - free(cr); + pmem_free(PMEM_SUBSYS_SYNC, cr); folder->taskscnt--; } len++; - un = (psync_fstask_unlink_t *)malloc( + un = (psync_fstask_unlink_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_unlink_t, name) + len); if (!un) { pfs_task_release_folder_tasks_locked(folder); @@ -2149,7 +2150,7 @@ static void psync_init_task_modify(psync_variant_row row) { memcpy(un->name, name, len); pfs_task_insert_into_tree( &folder->unlinks, offsetof(psync_fstask_unlink_t, name), &un->tree); - cr = (psync_fstask_creat_t *)malloc( + cr = (psync_fstask_creat_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_creat_t, name) + len); if (!cr) { pfs_task_release_folder_tasks_locked(folder); @@ -2187,7 +2188,7 @@ static void pfs_task_free_tree(psync_tree *tr) { tr = ptree_get_first_safe(tr); while (tr) { ntr = ptree_get_next_safe(tr); - free(tr); + pmem_free(PMEM_SUBSYS_SYNC, tr); tr = ntr; } } @@ -2206,7 +2207,7 @@ void pfs_task_clean() { pfs_task_free_tree(folder->rmdirs); if (folder->refcnt == 0) { ptree_del(&folders, &folder->tree); - free(folder); + pmem_free(PMEM_SUBSYS_SYNC, folder); } else { folder->creats = PSYNC_TREE_EMPTY; folder->unlinks = PSYNC_TREE_EMPTY; @@ -2225,7 +2226,7 @@ void pfs_task_add_banned_folder(psync_fsfolderid_t folderid, psync_fstask_rmdir_t *rm; size_t len; len = strlen(name) + 1; - mk = (psync_fstask_mkdir_t *)malloc( + mk = (psync_fstask_mkdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_mkdir_t, name) + len); if (!mk) return; @@ -2235,10 +2236,10 @@ void pfs_task_add_banned_folder(psync_fsfolderid_t folderid, mk->subdircnt = 0; mk->flags = PSYNC_FOLDER_FLAG_INVISIBLE; memcpy(mk->name, name, len); - rm = (psync_fstask_rmdir_t *)malloc( + rm = (psync_fstask_rmdir_t *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(psync_fstask_rmdir_t, name) + len); if (!rm) { - free(mk); + pmem_free(PMEM_SUBSYS_SYNC, mk); return; } rm->taskid = 0;