Lines Matching refs:cfids

18 static struct cached_fid *find_or_create_cached_dir(struct cached_fids *cfids,  in find_or_create_cached_dir()  argument
24 spin_lock(&cfids->cfid_list_lock); in find_or_create_cached_dir()
25 list_for_each_entry(cfid, &cfids->entries, entry) { in find_or_create_cached_dir()
33 spin_unlock(&cfids->cfid_list_lock); in find_or_create_cached_dir()
37 spin_unlock(&cfids->cfid_list_lock); in find_or_create_cached_dir()
42 spin_unlock(&cfids->cfid_list_lock); in find_or_create_cached_dir()
45 if (cfids->num_entries >= MAX_CACHED_FIDS) { in find_or_create_cached_dir()
46 spin_unlock(&cfids->cfid_list_lock); in find_or_create_cached_dir()
51 spin_unlock(&cfids->cfid_list_lock); in find_or_create_cached_dir()
54 cfid->cfids = cfids; in find_or_create_cached_dir()
55 cfids->num_entries++; in find_or_create_cached_dir()
56 list_add(&cfid->entry, &cfids->entries); in find_or_create_cached_dir()
59 spin_unlock(&cfids->cfid_list_lock); in find_or_create_cached_dir()
126 struct cached_fids *cfids; in open_cached_dir() local
128 if (tcon == NULL || tcon->cfids == NULL || tcon->nohandlecache || in open_cached_dir()
134 cfids = tcon->cfids; in open_cached_dir()
146 cfid = find_or_create_cached_dir(cfids, path, lookup_only); in open_cached_dir()
273 spin_lock(&cfids->cfid_list_lock); in open_cached_dir()
278 cfids->num_entries--; in open_cached_dir()
282 spin_unlock(&cfids->cfid_list_lock); in open_cached_dir()
299 struct cached_fids *cfids = tcon->cfids; in open_cached_dir_by_dentry() local
301 if (cfids == NULL) in open_cached_dir_by_dentry()
304 spin_lock(&cfids->cfid_list_lock); in open_cached_dir_by_dentry()
305 list_for_each_entry(cfid, &cfids->entries, entry) { in open_cached_dir_by_dentry()
310 spin_unlock(&cfids->cfid_list_lock); in open_cached_dir_by_dentry()
314 spin_unlock(&cfids->cfid_list_lock); in open_cached_dir_by_dentry()
324 spin_lock(&cfid->cfids->cfid_list_lock); in smb2_close_cached_fid()
328 cfid->cfids->num_entries--; in smb2_close_cached_fid()
330 spin_unlock(&cfid->cfids->cfid_list_lock); in smb2_close_cached_fid()
354 spin_lock(&cfid->cfids->cfid_list_lock); in drop_cached_dir_by_name()
359 spin_unlock(&cfid->cfids->cfid_list_lock); in drop_cached_dir_by_name()
379 struct cached_fids *cfids; in close_all_cached_dirs() local
386 cfids = tcon->cfids; in close_all_cached_dirs()
387 if (cfids == NULL) in close_all_cached_dirs()
389 list_for_each_entry(cfid, &cfids->entries, entry) { in close_all_cached_dirs()
402 struct cached_fids *cfids = tcon->cfids; in invalidate_all_cached_dirs() local
406 spin_lock(&cfids->cfid_list_lock); in invalidate_all_cached_dirs()
407 list_for_each_entry_safe(cfid, q, &cfids->entries, entry) { in invalidate_all_cached_dirs()
409 cfids->num_entries--; in invalidate_all_cached_dirs()
415 spin_unlock(&cfids->cfid_list_lock); in invalidate_all_cached_dirs()
425 spin_lock(&cfids->cfid_list_lock); in invalidate_all_cached_dirs()
427 spin_unlock(&cfids->cfid_list_lock); in invalidate_all_cached_dirs()
441 spin_lock(&cfid->cfids->cfid_list_lock); in smb2_cached_lease_break()
443 spin_unlock(&cfid->cfids->cfid_list_lock); in smb2_cached_lease_break()
449 struct cached_fids *cfids = tcon->cfids; in cached_dir_lease_break() local
452 if (cfids == NULL) in cached_dir_lease_break()
455 spin_lock(&cfids->cfid_list_lock); in cached_dir_lease_break()
456 list_for_each_entry(cfid, &cfids->entries, entry) { in cached_dir_lease_break()
468 cfids->num_entries--; in cached_dir_lease_break()
472 spin_unlock(&cfids->cfid_list_lock); in cached_dir_lease_break()
476 spin_unlock(&cfids->cfid_list_lock); in cached_dir_lease_break()
525 struct cached_fids *cfids; in init_cached_dirs() local
527 cfids = kzalloc(sizeof(*cfids), GFP_KERNEL); in init_cached_dirs()
528 if (!cfids) in init_cached_dirs()
530 spin_lock_init(&cfids->cfid_list_lock); in init_cached_dirs()
531 INIT_LIST_HEAD(&cfids->entries); in init_cached_dirs()
532 return cfids; in init_cached_dirs()
539 void free_cached_dirs(struct cached_fids *cfids) in free_cached_dirs() argument
544 spin_lock(&cfids->cfid_list_lock); in free_cached_dirs()
545 list_for_each_entry_safe(cfid, q, &cfids->entries, entry) { in free_cached_dirs()
550 spin_unlock(&cfids->cfid_list_lock); in free_cached_dirs()
557 kfree(cfids); in free_cached_dirs()