Migrate pfsupload.c malloc/free to pmem_malloc/pmem_free
This commit is contained in:
parent
655e14a485
commit
95d02868af
|
|
@ -44,6 +44,7 @@
|
|||
#include "pfsxattr.h"
|
||||
#include "plibs.h"
|
||||
#include "plist.h"
|
||||
#include "pmem.h"
|
||||
#include "pnetlibs.h"
|
||||
#include "ppagecache.h"
|
||||
#include "pqevent.h"
|
||||
|
|
@ -169,7 +170,7 @@ static int psync_process_task_mkdir(fsupload_task_t *task) {
|
|||
psql_bind_uint(res, 1, folderid);
|
||||
psql_bind_blob(res, 2, (char *)enckey, enckeylen);
|
||||
psql_run_free(res);
|
||||
free(enckey);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, enckey);
|
||||
}
|
||||
}
|
||||
pdbg_logf(D_NOTICE, "folder %lu/%s created", (unsigned long)task->folderid,
|
||||
|
|
@ -266,15 +267,15 @@ static int psync_send_task_creat_upload_small(psock_t *api,
|
|||
}
|
||||
if (pdbg_unlikely(pfile_read(fd, data + len, size) != size) ||
|
||||
pdbg_unlikely(pfs_get_file_writeid(task->id) != task->int1)) {
|
||||
free(data);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, data);
|
||||
return -1;
|
||||
}
|
||||
size += len;
|
||||
if (pdbg_unlikely(psync_socket_writeall_upload(api, data, size) != size)) {
|
||||
free(data);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, data);
|
||||
return -1;
|
||||
} else {
|
||||
free(data);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, data);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -311,7 +312,7 @@ static int clean_uploads_for_task(psock_t *api, psync_uploadid_t taskid) {
|
|||
ret = -1;
|
||||
break;
|
||||
} else
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
}
|
||||
sql = psql_prepare("DELETE FROM fstaskupload WHERE fstaskid=?");
|
||||
psql_bind_uint(sql, 1, taskid);
|
||||
|
|
@ -334,7 +335,7 @@ static int large_upload_check_checksum(psock_t *api, uint64_t uploadid,
|
|||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
if (unlikely(result)) {
|
||||
pdbg_logf(D_WARNING, "upload_info returned %lu", (long unsigned)result);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
psync_apipool_release(api);
|
||||
psync_process_api_error(result);
|
||||
return -1;
|
||||
|
|
@ -342,11 +343,11 @@ static int large_upload_check_checksum(psock_t *api, uint64_t uploadid,
|
|||
if (memcmp(filehash, papi_find_result2(res, PSYNC_CHECKSUM, PARAM_STR)->str,
|
||||
PSYNC_HASH_DIGEST_HEXLEN)) {
|
||||
pdbg_logf(D_WARNING, "upload_info returned different checksum");
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
psync_apipool_release(api);
|
||||
return -1;
|
||||
}
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -410,7 +411,7 @@ static void set_key_for_fileid(psync_fileid_t fileid, uint64_t hash,
|
|||
psql_bind_uint(res, 2, hash);
|
||||
psql_bind_blob(res, 3, (char *)enckey, enckeylen);
|
||||
psql_run_free(res);
|
||||
free(enckey);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, enckey);
|
||||
}
|
||||
psync_get_string_id(buff, "DKEY", fileid);
|
||||
pcache_del(buff);
|
||||
|
|
@ -569,14 +570,14 @@ static int large_upload_save(psock_t *api, uint64_t uploadid,
|
|||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
if (unlikely(result)) {
|
||||
pdbg_logf(D_WARNING, "upload_save returned %lu", (long unsigned)result);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
handle_upload_api_error_taskid(result, taskid);
|
||||
return -1;
|
||||
}
|
||||
pdbg_logf(D_NOTICE, "sent mtime=%lu", (unsigned long)pfile_stat_mtime(&st));
|
||||
ret = save_meta(papi_find_result2(res, "metadata", PARAM_HASH), folderid,
|
||||
name, taskid, writeid, newfile, oldhash, key);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
pdiff_wake();
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -633,7 +634,7 @@ static int copy_file(psock_t *api, const struct stat *st,
|
|||
return -1;
|
||||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
if (unlikely(result)) {
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
pdbg_logf(D_WARNING, "command copyfile returned code %u", (unsigned)result);
|
||||
psync_process_api_error(result);
|
||||
return 0;
|
||||
|
|
@ -641,7 +642,7 @@ static int copy_file(psock_t *api, const struct stat *st,
|
|||
meta = papi_find_result2(res, "metadata", PARAM_HASH);
|
||||
pdbg_logf(D_NOTICE, "sent mtime=%lu", (unsigned long)pfile_stat_mtime(st));
|
||||
ret = save_meta(meta, folderid, name, taskid, writeid, 1, 0, NULL);
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
if (ret) // ret*2-1?
|
||||
return -1;
|
||||
else
|
||||
|
|
@ -665,7 +666,7 @@ static int copy_file_if_exists(psock_t *api, const char *filename,
|
|||
return -1;
|
||||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
if (unlikely(result)) {
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
pdbg_logf(D_WARNING, "command getfilesbychecksum returned code %u",
|
||||
(unsigned)result);
|
||||
psync_process_api_error(result);
|
||||
|
|
@ -673,12 +674,12 @@ static int copy_file_if_exists(psock_t *api, const char *filename,
|
|||
}
|
||||
metas = papi_find_result2(res, "metadata", PARAM_ARRAY);
|
||||
if (!metas->length) {
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
return 0;
|
||||
}
|
||||
meta = metas->array[0];
|
||||
if (stat(filename, &st)) {
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
return -1;
|
||||
}
|
||||
ret = copy_file(api, &st, papi_find_result2(meta, "fileid", PARAM_NUM)->num,
|
||||
|
|
@ -694,7 +695,7 @@ static int copy_file_if_exists(psock_t *api, const char *filename,
|
|||
(long unsigned)folderid, name);
|
||||
pdiff_wake();
|
||||
}
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -763,7 +764,7 @@ static int large_upload_creat(uint64_t taskid, psync_folderid_t folderid,
|
|||
goto err0;
|
||||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
if (unlikely(result)) {
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
psync_apipool_release(api);
|
||||
pdbg_logf(D_WARNING, "upload_create returned %lu", (unsigned long)result);
|
||||
psync_process_api_error(result);
|
||||
|
|
@ -773,7 +774,7 @@ static int large_upload_creat(uint64_t taskid, psync_folderid_t folderid,
|
|||
return 0;
|
||||
}
|
||||
uploadid = papi_find_result2(res, "uploadid", PARAM_NUM)->num;
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
sql = psql_prepare(
|
||||
"INSERT INTO fstaskupload (fstaskid, uploadid) VALUES (?, ?)");
|
||||
psql_bind_uint(sql, 1, taskid);
|
||||
|
|
@ -790,7 +791,7 @@ static int large_upload_creat(uint64_t taskid, psync_folderid_t folderid,
|
|||
}
|
||||
if (large_upload_creat_send_write(api, uploadid, usize, fsize - usize))
|
||||
goto err1;
|
||||
buff = malloc(PSYNC_COPY_BUFFER_SIZE);
|
||||
buff = pmem_malloc(PMEM_SUBSYS_UPLOAD, PSYNC_COPY_BUFFER_SIZE);
|
||||
if (usize) {
|
||||
asize = usize;
|
||||
pupload_bytes_add(asize);
|
||||
|
|
@ -814,13 +815,13 @@ static int large_upload_creat(uint64_t taskid, psync_folderid_t folderid,
|
|||
asize += rrd;
|
||||
pupload_bytes_add(rrd);
|
||||
}
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, buff);
|
||||
pfile_close(fd);
|
||||
res = papi_result(api);
|
||||
if (pdbg_unlikely(!res))
|
||||
goto err0;
|
||||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
if (result) {
|
||||
pdbg_logf(D_WARNING, "upload_write returned error %lu", (long unsigned)result);
|
||||
psync_process_api_error(result);
|
||||
|
|
@ -864,7 +865,7 @@ ret0:
|
|||
pupload_bytes_sub(asize);
|
||||
return 0;
|
||||
err2:
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, buff);
|
||||
err1:
|
||||
pfile_close(fd);
|
||||
err0:
|
||||
|
|
@ -918,7 +919,7 @@ static int upload_modify_send_local(psock_t *api,
|
|||
return PSYNC_NET_TEMPFAIL;
|
||||
bw = 0;
|
||||
|
||||
buff = malloc(PSYNC_COPY_BUFFER_SIZE);
|
||||
buff = pmem_malloc(PMEM_SUBSYS_UPLOAD, PSYNC_COPY_BUFFER_SIZE);
|
||||
while (bw < length) {
|
||||
if (unlikely(stop_current_upload)) {
|
||||
pdbg_logf(D_NOTICE, "got stop");
|
||||
|
|
@ -942,13 +943,13 @@ static int upload_modify_send_local(psock_t *api,
|
|||
*upl += rrd;
|
||||
pupload_bytes_add(rrd);
|
||||
}
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, buff);
|
||||
return PSYNC_NET_OK;
|
||||
err0:
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, buff);
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
errp:
|
||||
free(buff);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, buff);
|
||||
return PSYNC_NET_PERMFAIL;
|
||||
}
|
||||
|
||||
|
|
@ -959,7 +960,7 @@ static int upload_modify_read_req(psock_t *api) {
|
|||
if (!res)
|
||||
return PSYNC_NET_TEMPFAIL;
|
||||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
if (result) {
|
||||
pdbg_logf(D_WARNING, "got %lu from upload_writefromfile or upload_write",
|
||||
(unsigned long)result);
|
||||
|
|
@ -1016,7 +1017,7 @@ int upload_modify(uint64_t taskid, psync_folderid_t folderid, const char *name,
|
|||
goto err2;
|
||||
result = papi_find_result2(res, "result", PARAM_NUM)->num;
|
||||
if (unlikely(result)) {
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
psync_apipool_release(api);
|
||||
psync_interval_tree_free(tree);
|
||||
pdbg_logf(D_WARNING, "upload_create returned %lu", (unsigned long)result);
|
||||
|
|
@ -1027,7 +1028,7 @@ int upload_modify(uint64_t taskid, psync_folderid_t folderid, const char *name,
|
|||
return 0;
|
||||
}
|
||||
uploadid = papi_find_result2(res, "uploadid", PARAM_NUM)->num;
|
||||
free(res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, res);
|
||||
sql = psql_prepare(
|
||||
"INSERT INTO fstaskupload (fstaskid, uploadid) VALUES (?, ?)");
|
||||
psql_bind_uint(sql, 1, taskid);
|
||||
|
|
@ -1164,7 +1165,7 @@ static void large_upload() {
|
|||
else {
|
||||
cname = psync_get_lstring(row[4], &len);
|
||||
len++;
|
||||
key = malloc(sizeof(char) * len);
|
||||
key = pmem_malloc_array(PMEM_SUBSYS_UPLOAD, len, sizeof(char));
|
||||
memcpy(key, cname, len);
|
||||
}
|
||||
cname = psync_get_lstring(row[3], &len);
|
||||
|
|
@ -1172,7 +1173,7 @@ static void large_upload() {
|
|||
fileid = psync_get_number(row[6]);
|
||||
hash = psync_get_number_or_null(row[7]);
|
||||
len++;
|
||||
name = malloc(sizeof(char) * len);
|
||||
name = pmem_malloc_array(PMEM_SUBSYS_UPLOAD, len, sizeof(char));
|
||||
memcpy(name, cname, len);
|
||||
current_upload_taskid = taskid;
|
||||
stop_current_upload = 0;
|
||||
|
|
@ -1223,10 +1224,10 @@ static void large_upload() {
|
|||
pfs_upld_wake();
|
||||
psys_sleep_milliseconds(PSYNC_SLEEP_ON_FAILED_UPLOAD);
|
||||
}
|
||||
free(indexname);
|
||||
free(filename);
|
||||
free(name);
|
||||
free(key);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, indexname);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, filename);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, name);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, key);
|
||||
}
|
||||
pdbg_logf(D_NOTICE, "exited");
|
||||
}
|
||||
|
|
@ -1274,7 +1275,7 @@ int pfs_upld_in_current_small_uploads_batch_locked(uint64_t taskid) {
|
|||
stret = stat(filename, &st);
|
||||
if (stret)
|
||||
pdbg_logf(D_WARNING, "can not stat %s", filename);
|
||||
free(filename);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, filename);
|
||||
if (stret)
|
||||
return 1;
|
||||
if (pfile_stat_size(&st) > PSYNC_FS_DIRECT_UPLOAD_LIMIT)
|
||||
|
|
@ -1299,7 +1300,7 @@ static int psync_send_task_creat(psock_t *api, fsupload_task_t *task) {
|
|||
filename = putil_strcat(psync_setting_get_string(_PS(fscachepath)),
|
||||
"/", fileidhex, NULL);
|
||||
fd = pfile_open(filename, O_RDONLY, 0);
|
||||
free(filename);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, filename);
|
||||
if (pdbg_unlikely(fd == INVALID_HANDLE_VALUE) ||
|
||||
pdbg_unlikely(fstat(fd, &st))) {
|
||||
if (fd != INVALID_HANDLE_VALUE)
|
||||
|
|
@ -1516,7 +1517,7 @@ int2, sfolderid FROM fstask WHERE id=?"); psql_bind_uint(res, 1, id);
|
|||
size+=row[4].length+1;
|
||||
if (row[5].type==PSYNC_TSTRING)
|
||||
size+=row[5].length+1;
|
||||
task=(fsupload_task_t *)malloc(size);
|
||||
task=(fsupload_task_t *)pmem_malloc(PMEM_SUBSYS_UPLOAD, size);
|
||||
end=(char *)(task+1);
|
||||
task->res=NULL;
|
||||
task->id=psync_get_number(row[0]);
|
||||
|
|
@ -1592,7 +1593,7 @@ static void change_folder_name(fsupload_task_t *task) {
|
|||
while (et > task->text1 + 2 && isdigit(et[0]))
|
||||
et--;
|
||||
if (et > task->text1 && et[0] == '(' && atol(et + 1) < 20) {
|
||||
nn = malloc(sizeof(char) * (et - task->text1 + 7));
|
||||
nn = pmem_malloc_array(PMEM_SUBSYS_UPLOAD, et - task->text1 + 7, sizeof(char));
|
||||
memcpy(nn, task->text1, et - task->text1);
|
||||
putil_slprintf(nn + (et - task->text1), 7, " (%d)", atoi(et + 1) + 1);
|
||||
}
|
||||
|
|
@ -1606,7 +1607,7 @@ static void change_folder_name(fsupload_task_t *task) {
|
|||
psql_run_free(res);
|
||||
pdbg_logf(D_NOTICE, "changed target name of task %lu from %s to %s",
|
||||
(unsigned long)task->id, task->text1, nn);
|
||||
free(nn);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, nn);
|
||||
}
|
||||
|
||||
static int handle_rename_folder_api_error(uint64_t result,
|
||||
|
|
@ -1681,13 +1682,13 @@ static void psync_delete_write_cache_file(uint64_t taskid, int index) {
|
|||
filename =
|
||||
putil_strcat(cachepath, "/", fileidhex, NULL);
|
||||
pdbg_assertw(pfile_delete(filename) == 0);
|
||||
free(filename);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, filename);
|
||||
if (index) {
|
||||
fileidhex[sizeof(psync_fsfileid_t)] = 'i';
|
||||
filename =
|
||||
putil_strcat(cachepath, "/", fileidhex, NULL);
|
||||
pdbg_assertw(pfile_delete(filename) == 0);
|
||||
free(filename);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, filename);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1921,7 +1922,7 @@ static void pfs_upld_process_tasks(psync_list *tasks) {
|
|||
dels++;
|
||||
}
|
||||
}
|
||||
free(task->res);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, task->res);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2029,12 +2030,12 @@ static void clean_stuck_tasks() {
|
|||
filename =
|
||||
putil_strcat(cachepath, "/", fileidhex, NULL);
|
||||
pfile_delete(filename);
|
||||
free(filename);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, filename);
|
||||
fileidhex[sizeof(psync_fsfileid_t)] = 'i';
|
||||
filename =
|
||||
putil_strcat(cachepath, "/", fileidhex, NULL);
|
||||
pfile_delete(filename);
|
||||
free(filename);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, filename);
|
||||
psql_start();
|
||||
res = psql_prepare(
|
||||
"DELETE FROM fstaskdepend WHERE dependfstaskid=?");
|
||||
|
|
@ -2045,7 +2046,7 @@ static void clean_stuck_tasks() {
|
|||
psql_run_free(res);
|
||||
psql_commit();
|
||||
}
|
||||
free(fr);
|
||||
pmem_free(PMEM_SUBSYS_UPLOAD, fr);
|
||||
}
|
||||
|
||||
static void pfs_upld_check_tasks() {
|
||||
|
|
@ -2081,7 +2082,7 @@ static void pfs_upld_check_tasks() {
|
|||
size += row[4].length + 1;
|
||||
if (row[5].type == PSYNC_TSTRING)
|
||||
size += row[5].length + 1;
|
||||
task = (fsupload_task_t *)malloc(size);
|
||||
task = (fsupload_task_t *)pmem_malloc(PMEM_SUBSYS_UPLOAD, size);
|
||||
end = (char *)(task + 1);
|
||||
task->res = NULL;
|
||||
task->id = psync_get_number(row[0]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue