Fix #1605 - timeshift: mark file space as free at earliest opportunity.

Previously the space was only marked as free when the file was physically
removed (which happens async) which resulted in the buffer immediately
being seen as full.
This commit is contained in:
Adam Sutton 2013-02-15 10:31:59 +00:00
parent 920a0a802c
commit 8b8876d768

View file

@ -75,7 +75,6 @@ static void* timeshift_reaper_callback ( void *p )
if (errno != ENOTEMPTY)
tvhlog(LOG_ERR, "timeshift", "failed to remove %s [e=%s]",
dpath, strerror(errno));
atomic_add_u64(&timeshift_total_size, -tsf->size);
/* Free memory */
while ((ti = TAILQ_FIRST(&tsf->iframes))) {
@ -163,6 +162,7 @@ void timeshift_filemgr_remove
if (tsf->fd != -1)
close(tsf->fd);
TAILQ_REMOVE(&ts->files, tsf, link);
atomic_add_u64(&timeshift_total_size, -tsf->size);
timeshift_reaper_remove(tsf);
}