• Home
  • Raw
  • Download

Lines Matching refs:cache

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