Migrate plocalscan.c malloc/free to pmem_malloc/pmem_free

This commit is contained in:
Levi Neely 2026-03-08 17:16:58 +01:00
parent 3b5e34cfd6
commit 7cebfd6e58
1 changed files with 16 additions and 15 deletions

View File

@ -40,6 +40,7 @@
#include "plist.h"
#include "plocalnotify.h"
#include "plocalscan.h"
#include "pmem.h"
#include "ppath.h"
#include "ppathstatus.h"
#include "prun.h"
@ -167,7 +168,7 @@ static void scanner_set_syncs_to_list(psync_list *lst,
pdbg_logf(D_WARNING, "folder %s deviceid is different, ignoring", lp);
continue;
}
l = (sync_list *)malloc(offsetof(sync_list, localpath) + lplen + 1);
l = (sync_list *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_list, localpath) + lplen + 1);
l->folderid = psync_get_number(row[1]);
l->deviceid = deviceid;
l->syncid = psync_get_number(row[0]);
@ -175,7 +176,7 @@ static void scanner_set_syncs_to_list(psync_list *lst,
memcpy(l->localpath, lp, lplen + 1);
psync_list_add_tail(lst, &l->list);
l_full_deviceid =
(sync_list *)malloc(offsetof(sync_list, localpath) + lplen + 1);
(sync_list *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_list, localpath) + lplen + 1);
l_full_deviceid->folderid = psync_get_number(row[1]);
l_full_deviceid->deviceid = pfile_stat_device_full(&st);
l_full_deviceid->syncid = psync_get_number(row[0]);
@ -184,7 +185,7 @@ static void scanner_set_syncs_to_list(psync_list *lst,
psync_list_add_tail(lst_deviceid_full, &l_full_deviceid->list);
}
psql_free(res);
free(syncmp);
pmem_free(PMEM_SUBSYS_SYNC, syncmp);
}
static void add_ignored_dir(const char *path) {
@ -249,7 +250,7 @@ static void reload_ignored_folders() {
homelen = strlen(home);
}
if (home) {
dir = (char *)malloc(dirlen + homelen - 4);
dir = (char *)pmem_malloc(PMEM_SUBSYS_SYNC, dirlen + homelen - 4);
memcpy(dir, home, homelen);
memcpy(dir + homelen, start + 5, dirlen - 5);
dir[dirlen + homelen - 5] = 0;
@ -257,15 +258,15 @@ static void reload_ignored_folders() {
dir = NULL;
}
} else {
dir = (char *)malloc(dirlen + 1);
dir = (char *)pmem_malloc(PMEM_SUBSYS_SYNC, dirlen + 1);
memcpy(dir, start, dirlen);
dir[dirlen] = 0;
}
if (dir)
add_ignored_dir(dir);
free(dir);
pmem_free(PMEM_SUBSYS_SYNC, dir);
}
free(home);
pmem_free(PMEM_SUBSYS_SYNC, home);
}
static int is_path_to_ignore(uint64_t deviceid, uint64_t inode) {
@ -292,7 +293,7 @@ static void scanner_local_entry_to_list(void *ptr, ppath_stat *st) {
lst = (psync_list *)ptr;
l = strlen(st->name) + 1;
e = (sync_folderlist *)malloc(offsetof(sync_folderlist, name) + l);
e = (sync_folderlist *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_folderlist, name) + l);
e->localid = 0;
e->remoteid = 0;
e->inode = pfile_stat_inode(&st->stat);
@ -356,7 +357,7 @@ static void scanner_db_folder_to_list(psync_syncid_t syncid,
continue;
}
namelen++;
e = (sync_folderlist *)malloc(offsetof(sync_folderlist, name) +
e = (sync_folderlist *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_folderlist, name) +
namelen);
e->localid = psync_get_number(row[0]);
e->remoteid = psync_get_number_or_null(row[1]);
@ -385,7 +386,7 @@ static void scanner_db_folder_to_list(psync_syncid_t syncid,
continue;
}
namelen++;
e = (sync_folderlist *)malloc(offsetof(sync_folderlist, name) +
e = (sync_folderlist *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_folderlist, name) +
namelen);
e->localid = psync_get_number(row[0]);
e->remoteid = psync_get_number_or_null(row[1]);
@ -414,7 +415,7 @@ static sync_folderlist *copy_folderlist_element(const sync_folderlist *e,
sync_folderlist *ret;
size_t l;
l = offsetof(sync_folderlist, name) + strlen(e->name) + 1;
ret = (sync_folderlist *)malloc(l);
ret = (sync_folderlist *)pmem_malloc(PMEM_SUBSYS_SYNC, l);
memcpy(ret, e, l);
ret->localparentfolderid = localfolderid;
ret->parentfolderid = folderid;
@ -572,7 +573,7 @@ scanner_scan_folder(const char *localpath, psync_folderid_t folderid,
subpath = putil_strcat(localpath, "/", l->name, NULL);
scanner_scan_folder(subpath, l->remoteid, l->localid, syncid, synctype,
deviceid);
free(subpath);
pmem_free(PMEM_SUBSYS_SYNC, subpath);
}
psync_list_for_each_element_call(&disklist, sync_folderlist, list, free);
@ -808,7 +809,7 @@ static void scan_created_folder(sync_folderlist *fl) {
localpath, (unsigned long)fl->localid, fl->name);
scanner_scan_folder(localpath, 0, fl->localid, fl->syncid, fl->synctype,
fl->deviceid);
free(localpath);
pmem_free(PMEM_SUBSYS_SYNC, localpath);
}
}
@ -1257,7 +1258,7 @@ void psync_restat_sync_folders_add(psync_syncid_t syncid,
sync_restat_list *l;
struct stat st;
size_t lplen = strlen(localpath);
l = (sync_restat_list *)malloc(offsetof(sync_restat_list, localpath) +
l = (sync_restat_list *)pmem_malloc(PMEM_SUBSYS_SYNC, offsetof(sync_restat_list, localpath) +
lplen + 1);
l->syncid = syncid;
memcpy(l->localpath, localpath, lplen + 1);
@ -1287,7 +1288,7 @@ void psync_restat_sync_folders_del(psync_syncid_t syncid) {
}
if (to_del) {
psync_list_del(&to_del->list);
free(to_del);
pmem_free(PMEM_SUBSYS_SYNC, to_del);
}
pthread_mutex_unlock(&restat_mutex);
}