undo option minimize mem
This commit is contained in:
72
src/cache.c
72
src/cache.c
@ -168,13 +168,6 @@ static time_t delay_upload;
|
||||
GET If-Modified-Since for single files. */
|
||||
static int gui_optimize;
|
||||
|
||||
/* Remove nodes that are currently not needed to minimize memory usage. */
|
||||
static int minimize_mem;
|
||||
|
||||
/* When to next run minimize_tree. 0 means to not run minimize_tree.
|
||||
Must be updated when a node is created. */
|
||||
static time_t next_minimize;
|
||||
|
||||
/* Time interval to wait, before a directory is updated. Usually equal to
|
||||
dir_refresh, but will be varied in case the connection timed out.*/
|
||||
static time_t retry;
|
||||
@ -283,9 +276,6 @@ get_upload_time(dav_node *node)
|
||||
return item->save_at;
|
||||
}
|
||||
|
||||
static void
|
||||
minimize_tree(dav_node *node, int rm_dir);
|
||||
|
||||
static int
|
||||
move_dir(dav_node *src, dav_node *dst, dav_node *dst_parent,
|
||||
const char *dst_name);
|
||||
@ -614,7 +604,6 @@ dav_init_cache(const dav_args *args, const char *mpoint)
|
||||
file_refresh = args->file_refresh;
|
||||
delay_upload = args->delay_upload;
|
||||
gui_optimize = args->gui_optimize;
|
||||
minimize_mem = args->minimize_mem;
|
||||
retry = dir_refresh;
|
||||
min_retry = args->retry;
|
||||
max_retry = args->max_retry;
|
||||
@ -659,7 +648,6 @@ dav_init_cache(const dav_args *args, const char *mpoint)
|
||||
backup->mode = S_IFDIR | S_IRWXU;
|
||||
|
||||
clean_cache();
|
||||
next_minimize = 0;
|
||||
|
||||
int ret = update_directory(root, 0);
|
||||
if (ret == EAGAIN) {
|
||||
@ -762,14 +750,6 @@ dav_tidy_cache(void)
|
||||
if (cache_size > max_cache_size)
|
||||
resize_cache();
|
||||
|
||||
if (minimize_mem && next_minimize && time(NULL) > next_minimize) {
|
||||
next_minimize = 0;
|
||||
minimize_tree(root, 0);
|
||||
if (debug)
|
||||
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG),
|
||||
"minimize_tree: %llu nodes remaining", fs_stat->files);
|
||||
}
|
||||
|
||||
static dav_node_list_item *item = NULL;
|
||||
|
||||
dav_node_list_item *next_item = changed;
|
||||
@ -1865,53 +1845,6 @@ delete_tree(dav_node *node)
|
||||
}
|
||||
|
||||
|
||||
/* Removes nodes that are currently not needed to minimize
|
||||
memory usage.
|
||||
Nodes are not needed if
|
||||
- a file node is without cached file and its parent directory
|
||||
has not been updated within file_refresh seconds
|
||||
- a dir node has no childs and has not been updated within
|
||||
file_refresh seconds.
|
||||
rm_dir : if node is a directory only remove it if rm_ dir = 1. */
|
||||
static void
|
||||
minimize_tree(dav_node *node, int rm_dir)
|
||||
{
|
||||
if (node == backup) return;
|
||||
|
||||
if (is_dir(node)) {
|
||||
|
||||
int rm = (time(NULL) > (node->utime + file_refresh));
|
||||
dav_node *child = node->childs;
|
||||
while (child) {
|
||||
dav_node *next = child->next;
|
||||
if (rm || is_dir(child))
|
||||
minimize_tree(child, rm);
|
||||
child = next;
|
||||
}
|
||||
if (!node->childs && node != root && node != backup) {
|
||||
if (rm && rm_dir) {
|
||||
remove_from_tree(node);
|
||||
remove_from_table(node);
|
||||
delete_node(node);
|
||||
*flush = 1;
|
||||
} else if (node->utime
|
||||
&& (!next_minimize
|
||||
|| (node->utime + file_refresh) < next_minimize)) {
|
||||
next_minimize = node->utime + file_refresh;
|
||||
}
|
||||
}
|
||||
|
||||
} else if (!is_cached(node) && !is_locked(node) && !is_created(node)) {
|
||||
|
||||
remove_from_tree(node);
|
||||
remove_from_table(node);
|
||||
delete_node(node);
|
||||
*flush = 1;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Moves directory src to dst using WebDAV method MOVE. */
|
||||
static int
|
||||
move_dir(dav_node *src, dav_node *dst, dav_node *dst_parent,
|
||||
@ -2135,9 +2068,6 @@ new_node(dav_node *parent, mode_t mode)
|
||||
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "new node: %p->%p",
|
||||
node->parent, node);
|
||||
fs_stat->files++;
|
||||
if (!next_minimize)
|
||||
next_minimize = node->atime + file_refresh;
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
@ -2246,7 +2176,7 @@ remove_node(dav_node *node)
|
||||
If there are inconsistencies between the information from the server and
|
||||
the locally stored state, the local information is updated. Backups are
|
||||
created if necessary.
|
||||
This will only be done if the utime of dir is reached, otherwise this
|
||||
This will only be done if the utime of dear is reached, otherwise this
|
||||
function will do nothing.
|
||||
utime and retry will be updated.
|
||||
If the contents or the mtime of the dir has changed, the dir-cache-file
|
||||
|
@ -101,9 +101,6 @@
|
||||
May be overridden by system config file and user config file. */
|
||||
#define DAV_GUI_OPTIMIZE 0
|
||||
|
||||
/* Remove nodes that are currently not needed to minimize memory usage. */
|
||||
#define DAV_MINIMIZE_MEM 0
|
||||
|
||||
|
||||
/* HTTP */
|
||||
/*======*/
|
||||
|
@ -1817,7 +1817,6 @@ new_args(void)
|
||||
args->file_refresh = DAV_FILE_REFRESH;
|
||||
args->delay_upload = DAV_DELAY_UPLOAD;
|
||||
args->gui_optimize = DAV_GUI_OPTIMIZE;
|
||||
args->minimize_mem = DAV_MINIMIZE_MEM;
|
||||
|
||||
args->debug = 0;
|
||||
args->neon_debug = 0;
|
||||
@ -2273,8 +2272,6 @@ read_config(dav_args *args, const char * filename, int system)
|
||||
args->delay_upload = arg_to_int(parmv[1], 10, parmv[0]);
|
||||
} else if (strcmp(parmv[0], "gui_optimize") == 0) {
|
||||
args->gui_optimize = arg_to_int(parmv[1], 10, parmv[0]);
|
||||
} else if (strcmp(parmv[0], "minimize_mem") == 0) {
|
||||
args->minimize_mem = arg_to_int(parmv[1], 10, parmv[0]);
|
||||
} else if (strcmp(parmv[0], "debug") == 0) {
|
||||
args->debug |= debug_opts(parmv[1]);
|
||||
args->neon_debug |= debug_opts_neon(parmv[1]);
|
||||
|
@ -95,7 +95,6 @@ typedef struct {
|
||||
time_t file_refresh; /* User config file, system config file */
|
||||
int delay_upload; /* User config file, system config file */
|
||||
int gui_optimize; /* User config file, system config file */
|
||||
int minimize_mem; /* User config file, system config file */
|
||||
/* Debugging */
|
||||
int debug; /* User config file, system config file */
|
||||
int neon_debug; /* User config file, system config file */
|
||||
|
Reference in New Issue
Block a user