Lines Matching defs:cache

84 static void cachefiles_mark_object_buried(struct cachefiles_cache *cache,
93 write_lock(&cache->active_lock);
95 p = cache->active_nodes.rb_node;
106 write_unlock(&cache->active_lock);
129 write_unlock(&cache->active_lock);
136 static int cachefiles_mark_object_active(struct cachefiles_cache *cache,
146 write_lock(&cache->active_lock);
157 _p = &cache->active_nodes.rb_node;
174 rb_insert_color(&object->active_node, &cache->active_nodes);
176 write_unlock(&cache->active_lock);
192 write_unlock(&cache->active_lock);
242 cache->cache.ops->put_object(&xobject->fscache,
247 cache->cache.ops->put_object(&xobject->fscache,
256 void cachefiles_mark_object_inactive(struct cachefiles_cache *cache,
265 write_lock(&cache->active_lock);
266 rb_erase(&object->active_node, &cache->active_nodes);
268 write_unlock(&cache->active_lock);
275 atomic_long_add(i_blocks, &cache->b_released);
276 if (atomic_inc_return(&cache->f_released))
277 cachefiles_state_changed(cache);
281 * delete an object representation from the cache
287 static int cachefiles_bury_object(struct cachefiles_cache *cache,
307 path.mnt = cache->mnt;
311 cachefiles_io_error(cache, "Unlink security error");
317 cachefiles_mark_object_buried(cache, rep, why);
323 cachefiles_io_error(cache, "Unlink failed");
337 (uint32_t) atomic_inc_return(&cache->gravecounter));
340 trap = lock_rename(cache->graveyard, dir);
346 unlock_rename(cache->graveyard, dir);
351 if (!d_can_lookup(cache->graveyard)) {
352 unlock_rename(cache->graveyard, dir);
353 cachefiles_io_error(cache, "Graveyard no longer a directory");
358 unlock_rename(cache->graveyard, dir);
359 cachefiles_io_error(cache, "May not make directory loop");
364 unlock_rename(cache->graveyard, dir);
365 cachefiles_io_error(cache, "Mountpoint in cache");
369 grave = lookup_one_len(nbuffer, cache->graveyard, strlen(nbuffer));
371 unlock_rename(cache->graveyard, dir);
378 cachefiles_io_error(cache, "Lookup error %ld",
384 unlock_rename(cache->graveyard, dir);
392 unlock_rename(cache->graveyard, dir);
394 cachefiles_io_error(cache, "Mountpoint in graveyard");
400 unlock_rename(cache->graveyard, dir);
402 cachefiles_io_error(cache, "May not make directory loop");
407 path.mnt = cache->mnt;
409 path_to_graveyard.mnt = cache->mnt;
410 path_to_graveyard.dentry = cache->graveyard;
413 cachefiles_io_error(cache, "Rename security error %d", ret);
417 d_inode(cache->graveyard), grave, NULL, 0);
419 cachefiles_io_error(cache,
423 cachefiles_mark_object_buried(cache, rep, why);
426 unlock_rename(cache->graveyard, dir);
433 * delete an object representation from the cache
435 int cachefiles_delete_object(struct cachefiles_cache *cache,
461 ret = cachefiles_bury_object(cache, object, dir,
487 struct cachefiles_cache *cache;
499 cache = container_of(parent->fscache.cache,
500 struct cachefiles_cache, cache);
501 path.mnt = cache->mnt;
555 ret = cachefiles_has_space(cache, 1, 0);
591 ret = cachefiles_has_space(cache, 1, 0);
645 ret = cachefiles_bury_object(cache, object, dir, next,
661 ret = cachefiles_mark_object_active(cache, object);
715 cachefiles_io_error(cache, "Create/mkdir failed");
725 cache, object, d_backing_inode(object->dentry)->i_blocks);
739 cachefiles_io_error(cache, "Lookup failed");
754 struct dentry *cachefiles_get_directory(struct cachefiles_cache *cache,
783 ret = cachefiles_has_space(cache, 1, 0);
789 path.mnt = cache->mnt;
863 static struct dentry *cachefiles_check_active(struct cachefiles_cache *cache,
899 read_lock(&cache->active_lock);
901 _n = cache->active_nodes.rb_node;
914 read_unlock(&cache->active_lock);
920 read_unlock(&cache->active_lock);
936 cachefiles_io_error(cache, "Lookup failed");
948 * - called only by cache manager daemon
950 int cachefiles_cull(struct cachefiles_cache *cache, struct dentry *dir,
958 victim = cachefiles_check_active(cache, dir, filename);
970 ret = cachefiles_remove_object_xattr(cache, victim);
977 ret = cachefiles_bury_object(cache, NULL, dir, victim, false,
1007 * - called only by cache manager daemon
1010 int cachefiles_check_in_use(struct cachefiles_cache *cache, struct dentry *dir,
1018 victim = cachefiles_check_active(cache, dir, filename);