Lines Matching defs:cfids

20 static struct cached_fid *find_or_create_cached_dir(struct cached_fids *cfids,
27 spin_lock(&cfids->cfid_list_lock);
28 list_for_each_entry(cfid, &cfids->entries, entry) {
36 spin_unlock(&cfids->cfid_list_lock);
40 spin_unlock(&cfids->cfid_list_lock);
45 spin_unlock(&cfids->cfid_list_lock);
48 if (cfids->num_entries >= max_cached_dirs) {
49 spin_unlock(&cfids->cfid_list_lock);
54 spin_unlock(&cfids->cfid_list_lock);
57 cfid->cfids = cfids;
58 cfids->num_entries++;
59 list_add(&cfid->entry, &cfids->entries);
62 spin_unlock(&cfids->cfid_list_lock);
146 struct cached_fids *cfids;
149 if (tcon == NULL || tcon->cfids == NULL || tcon->nohandlecache ||
155 cfids = tcon->cfids;
167 cfid = find_or_create_cached_dir(cfids, path, lookup_only, tcon->max_cached_dirs);
174 * entry or laundromat worker removed it from @cfids->entries. Caller
177 spin_lock(&cfids->cfid_list_lock);
179 spin_unlock(&cfids->cfid_list_lock);
184 spin_unlock(&cfids->cfid_list_lock);
285 spin_lock(&cfids->cfid_list_lock);
296 spin_unlock(&cfids->cfid_list_lock);
306 spin_unlock(&cfids->cfid_list_lock);
312 spin_unlock(&cfids->cfid_list_lock);
317 spin_unlock(&cfids->cfid_list_lock);
328 spin_unlock(&cfids->cfid_list_lock);
338 spin_lock(&cfids->cfid_list_lock);
342 cfids->num_entries--;
353 spin_unlock(&cfids->cfid_list_lock);
357 spin_unlock(&cfids->cfid_list_lock);
379 struct cached_fids *cfids = tcon->cfids;
381 if (cfids == NULL)
384 spin_lock(&cfids->cfid_list_lock);
385 list_for_each_entry(cfid, &cfids->entries, entry) {
390 spin_unlock(&cfids->cfid_list_lock);
394 spin_unlock(&cfids->cfid_list_lock);
404 spin_lock(&cfid->cfids->cfid_list_lock);
408 cfid->cfids->num_entries--;
410 spin_unlock(&cfid->cfids->cfid_list_lock);
435 spin_lock(&cfid->cfids->cfid_list_lock);
440 spin_unlock(&cfid->cfids->cfid_list_lock);
460 struct cached_fids *cfids;
467 cfids = tcon->cfids;
468 if (cfids == NULL)
470 list_for_each_entry(cfid, &cfids->entries, entry) {
483 struct cached_fids *cfids = tcon->cfids;
487 if (cfids == NULL)
490 spin_lock(&cfids->cfid_list_lock);
491 list_for_each_entry_safe(cfid, q, &cfids->entries, entry) {
493 cfids->num_entries--;
499 spin_unlock(&cfids->cfid_list_lock);
509 spin_lock(&cfids->cfid_list_lock);
511 spin_unlock(&cfids->cfid_list_lock);
525 spin_lock(&cfid->cfids->cfid_list_lock);
527 spin_unlock(&cfid->cfids->cfid_list_lock);
533 struct cached_fids *cfids = tcon->cfids;
536 if (cfids == NULL)
539 spin_lock(&cfids->cfid_list_lock);
540 list_for_each_entry(cfid, &cfids->entries, entry) {
552 cfids->num_entries--;
556 spin_unlock(&cfids->cfid_list_lock);
560 spin_unlock(&cfids->cfid_list_lock);
609 struct cached_fids *cfids;
613 cfids = container_of(work, struct cached_fids, laundromat_work.work);
615 spin_lock(&cfids->cfid_list_lock);
616 list_for_each_entry_safe(cfid, q, &cfids->entries, entry) {
621 cfids->num_entries--;
626 spin_unlock(&cfids->cfid_list_lock);
640 spin_lock(&cfids->cfid_list_lock);
642 spin_unlock(&cfids->cfid_list_lock);
648 queue_delayed_work(cifsiod_wq, &cfids->laundromat_work,
654 struct cached_fids *cfids;
656 cfids = kzalloc(sizeof(*cfids), GFP_KERNEL);
657 if (!cfids)
659 spin_lock_init(&cfids->cfid_list_lock);
660 INIT_LIST_HEAD(&cfids->entries);
662 INIT_DELAYED_WORK(&cfids->laundromat_work, cfids_laundromat_worker);
663 queue_delayed_work(cifsiod_wq, &cfids->laundromat_work,
666 return cfids;
673 void free_cached_dirs(struct cached_fids *cfids)
678 if (cfids == NULL)
681 cancel_delayed_work_sync(&cfids->laundromat_work);
683 spin_lock(&cfids->cfid_list_lock);
684 list_for_each_entry_safe(cfid, q, &cfids->entries, entry) {
689 spin_unlock(&cfids->cfid_list_lock);
696 kfree(cfids);