diff options
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/menus/settings_menu.c | 16 | ||||
| -rw-r--r-- | apps/tagcache.c | 2 | ||||
| -rw-r--r-- | apps/tree.c | 2 |
3 files changed, 9 insertions, 11 deletions
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index b3003bf..82c91aa 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c @@ -189,16 +189,14 @@ static int dircache_callback(int action,const struct menu_item_ex *this_item) switch (action) { case ACTION_EXIT_MENUITEM: /* on exit */ - switch (global_settings.dircache) + if (global_settings.dircache && !dircache_is_enabled()) { - case true: - if (!dircache_is_enabled()) - splash(HZ*2, ID2P(LANG_PLEASE_REBOOT)); - break; - case false: - if (dircache_is_enabled()) - dircache_disable(); - break; + if (dircache_build(0) < 0) + splash(HZ*2, ID2P(LANG_PLEASE_REBOOT)); + } + else if (!global_settings.dircache && dircache_is_enabled()) + { + dircache_disable(); } break; } diff --git a/apps/tagcache.c b/apps/tagcache.c index e3f2f4f..8d522b1 100644 --- a/apps/tagcache.c +++ b/apps/tagcache.c @@ -3099,7 +3099,7 @@ static bool commit(void) #ifdef HAVE_DIRCACHE /* Rebuild the dircache, if we stole the buffer. */ if (dircache_buffer_stolen) - dircache_build(0); + dircache_resume(); #endif #ifdef HAVE_TC_RAMCACHE diff --git a/apps/tree.c b/apps/tree.c index c7484ff..24acd5a 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -1216,7 +1216,7 @@ void tree_flush(void) if (firmware_settings.initialized) dircache_save(); # endif - dircache_disable(); + dircache_suspend(); } else { |