forked from len0rd/rockbox
Avoid having to wait for dircache builds if shut down too soon
When dircache scanning is happening in the background, the user can shut down the device before it is complete. Then, reset_cache() sets size to 0 before it is copied to last_size at the end of build_volumes(). When saved last_size is zero, scanning happens in the foreground during next startup. Avoid shrinking the size if the build is suspended. Change-Id: Ife133e0be0dc0dfd53a4de119f70dba014c7ee68
This commit is contained in:
parent
35d69c80a6
commit
05739efe8d
1 changed files with 6 additions and 4 deletions
|
|
@ -1884,10 +1884,12 @@ static void build_volumes(void)
|
|||
dircache.reserve_used = reserve_used;
|
||||
|
||||
if (DIRCACHE_STUFFED(reserve_used))
|
||||
dircache.last_size = 0; /* reset */
|
||||
else if (dircache.size > dircache.last_size ||
|
||||
dircache.last_size - dircache.size > DIRCACHE_RESERVE)
|
||||
dircache.last_size = dircache.size;
|
||||
dircache.last_size = 0; /* reset */
|
||||
else if (dircache.size > dircache.last_size)
|
||||
dircache.last_size = dircache.size; /* grow */
|
||||
else if (!dircache_runinfo.suspended &&
|
||||
dircache.last_size - dircache.size > DIRCACHE_RESERVE)
|
||||
dircache.last_size = dircache.size; /* shrink if not suspended */
|
||||
|
||||
logf("Done, %ld KiB used", dircache.size / 1024);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue