Lines Matching defs:cache
55 struct ovl_dir_cache *cache;
230 struct ovl_dir_cache *cache = ovl_dir_cache(inode);
232 if (cache) {
233 ovl_cache_free(&cache->entries);
234 kfree(cache);
240 struct ovl_dir_cache *cache = od->cache;
242 WARN_ON(cache->refcount <= 0);
243 cache->refcount--;
244 if (!cache->refcount) {
245 if (ovl_dir_cache(inode) == cache)
248 ovl_cache_free(&cache->entries);
249 kfree(cache);
325 struct ovl_dir_cache *cache = od->cache;
329 if (cache && ovl_inode_version_get(inode) != cache->version) {
331 od->cache = NULL;
384 list_for_each(p, &od->cache->entries) {
389 /* Cursor is safe since the cache is stable */
396 struct ovl_dir_cache *cache;
399 cache = ovl_dir_cache(inode);
400 if (cache && ovl_inode_version_get(inode) == cache->version) {
401 WARN_ON(!cache->refcount);
402 cache->refcount++;
403 return cache;
407 cache = kzalloc(sizeof(struct ovl_dir_cache), GFP_KERNEL);
408 if (!cache)
411 cache->refcount = 1;
412 INIT_LIST_HEAD(&cache->entries);
413 cache->root = RB_ROOT;
415 res = ovl_dir_read_merged(dentry, &cache->entries, &cache->root);
417 ovl_cache_free(&cache->entries);
418 kfree(cache);
422 cache->version = ovl_inode_version_get(inode);
423 ovl_set_dir_cache(inode, cache);
425 return cache;
603 struct ovl_dir_cache *cache;
605 cache = ovl_dir_cache(inode);
606 if (cache && ovl_inode_version_get(inode) == cache->version)
607 return cache;
609 /* Impure cache is not refcounted, free it here */
613 cache = kzalloc(sizeof(struct ovl_dir_cache), GFP_KERNEL);
614 if (!cache)
617 res = ovl_dir_read_impure(path, &cache->entries, &cache->root);
619 ovl_cache_free(&cache->entries);
620 kfree(cache);
623 if (list_empty(&cache->entries)) {
634 kfree(cache);
638 cache->version = ovl_inode_version_get(inode);
639 ovl_set_dir_cache(inode, cache);
641 return cache;
646 struct ovl_dir_cache *cache;
664 } else if (rdt->cache) {
667 p = ovl_cache_entry_find(&rdt->cache->root, name, namelen);
686 * impure. We only want the impure cache if we started iterating
724 rdt.cache = ovl_cache_get_impure(&file->f_path);
725 if (IS_ERR(rdt.cache))
726 return PTR_ERR(rdt.cache);
766 if (!od->cache) {
767 struct ovl_dir_cache *cache;
769 cache = ovl_cache_get(dentry);
770 err = PTR_ERR(cache);
771 if (IS_ERR(cache))
774 od->cache = cache;
778 while (od->cursor != &od->cache->entries) {
830 if (od->cache)
919 if (od->cache) {