From: Adam Sutton Date: Fri, 15 Feb 2013 10:31:59 +0000 (+0000) Subject: Fix #1605 - timeshift: mark file space as free at earliest opportunity. X-Git-Tag: v3.5~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b8876d768a693d3a6a8dbd0939268605e509407;p=thirdparty%2Ftvheadend.git 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. --- diff --git a/src/timeshift/timeshift_filemgr.c b/src/timeshift/timeshift_filemgr.c index a0d1603a3..19bc6b439 100644 --- a/src/timeshift/timeshift_filemgr.c +++ b/src/timeshift/timeshift_filemgr.c @@ -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(×hift_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(×hift_total_size, -tsf->size); timeshift_reaper_remove(tsf); }