From 4026b45bbc4c2c067feeee181c54e2beaa1cc5e0 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Tue, 26 Apr 2016 14:56:22 +1000 Subject: [PATCH] util: add a disk_cache_remove() function This will be used to remove cache items created with old versions of Mesa or other invalid cache items from the cache. V2: rename stub function (cache_* funtions were renamed disk_cache_*) in master. Reviewed-by: Anuj Phogat --- src/util/disk_cache.c | 22 ++++++++++++++++++++++ src/util/disk_cache.h | 12 ++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c index 551ceeb..7451b08 100644 --- a/src/util/disk_cache.c +++ b/src/util/disk_cache.c @@ -538,6 +538,28 @@ evict_random_item(struct disk_cache *cache) } void +disk_cache_remove(struct disk_cache *cache, cache_key key) +{ + struct stat sb; + + char *filename = get_cache_file(cache, key); + if (filename == NULL) { + return; + } + + if (stat(filename, &sb) == -1) { + ralloc_free(filename); + return; + } + + unlink(filename); + ralloc_free(filename); + + if (sb.st_size) + p_atomic_add(cache->size, - sb.st_size); +} + +void disk_cache_put(struct disk_cache *cache, cache_key key, const void *data, diff --git a/src/util/disk_cache.h b/src/util/disk_cache.h index 7e9cb80..1f2bf3d 100644 --- a/src/util/disk_cache.h +++ b/src/util/disk_cache.h @@ -78,6 +78,12 @@ void disk_cache_destroy(struct disk_cache *cache); /** + * Remove the item in the cache under the name \key. + */ +void +disk_cache_remove(struct disk_cache *cache, cache_key key); + +/** * Store an item in the cache under the name \key. * * The item can be retrieved later with disk_cache_get(), (unless the item has @@ -151,6 +157,12 @@ disk_cache_put(struct disk_cache *cache, cache_key key, return; } +static inline void +disk_cache_remove(struct program_cache *cache, cache_key key) +{ + return; +} + static inline uint8_t * disk_cache_get(struct disk_cache *cache, cache_key key, size_t *size) { -- 2.7.4