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(d_inode(dentry)) == cache)
248 ovl_cache_free(&cache->entries);
249 kfree(cache);
325 struct ovl_dir_cache *cache = od->cache;
329 if (cache && ovl_dentry_version_get(dentry) != 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;
398 cache = ovl_dir_cache(d_inode(dentry));
399 if (cache && ovl_dentry_version_get(dentry) == cache->version) {
400 WARN_ON(!cache->refcount);
401 cache->refcount++;
402 return cache;
406 cache = kzalloc(sizeof(struct ovl_dir_cache), GFP_KERNEL);
407 if (!cache)
410 cache->refcount = 1;
411 INIT_LIST_HEAD(&cache->entries);
412 cache->root = RB_ROOT;
414 res = ovl_dir_read_merged(dentry, &cache->entries, &cache->root);
416 ovl_cache_free(&cache->entries);
417 kfree(cache);
421 cache->version = ovl_dentry_version_get(dentry);
422 ovl_set_dir_cache(d_inode(dentry), cache);
424 return cache;
598 struct ovl_dir_cache *cache;
600 cache = ovl_dir_cache(d_inode(dentry));
601 if (cache && ovl_dentry_version_get(dentry) == cache->version)
602 return cache;
604 /* Impure cache is not refcounted, free it here */
608 cache = kzalloc(sizeof(struct ovl_dir_cache), GFP_KERNEL);
609 if (!cache)
612 res = ovl_dir_read_impure(path, &cache->entries, &cache->root);
614 ovl_cache_free(&cache->entries);
615 kfree(cache);
618 if (list_empty(&cache->entries)) {
629 kfree(cache);
633 cache->version = ovl_dentry_version_get(dentry);
634 ovl_set_dir_cache(d_inode(dentry), cache);
636 return cache;
641 struct ovl_dir_cache *cache;
659 } else if (rdt->cache) {
662 p = ovl_cache_entry_find(&rdt->cache->root, name, namelen);
681 * impure. We only want the impure cache if we started iterating
718 rdt.cache = ovl_cache_get_impure(&file->f_path);
719 if (IS_ERR(rdt.cache))
720 return PTR_ERR(rdt.cache);
759 if (!od->cache) {
760 struct ovl_dir_cache *cache;
762 cache = ovl_cache_get(dentry);
763 err = PTR_ERR(cache);
764 if (IS_ERR(cache))
767 od->cache = cache;
771 while (od->cursor != &od->cache->entries) {
820 if (od->cache)
909 if (od->cache) {