Lines Matching refs:cookie
495 struct afs_lookup_one_cookie *cookie = in afs_lookup_one_filldir() local
499 cookie->name.name, cookie->name.len, name, nlen, in afs_lookup_one_filldir()
506 if (cookie->name.len != nlen || in afs_lookup_one_filldir()
507 memcmp(cookie->name.name, name, nlen) != 0) { in afs_lookup_one_filldir()
512 cookie->fid.vnode = ino; in afs_lookup_one_filldir()
513 cookie->fid.unique = dtype; in afs_lookup_one_filldir()
514 cookie->found = 1; in afs_lookup_one_filldir()
528 struct afs_lookup_one_cookie cookie = { in afs_do_lookup_one() local
538 ret = afs_dir_iterate(dir, &cookie.ctx, key); in afs_do_lookup_one()
545 if (!cookie.found) { in afs_do_lookup_one()
550 *fid = cookie.fid; in afs_do_lookup_one()
563 struct afs_lookup_cookie *cookie = in afs_lookup_filldir() local
568 cookie->name.name, cookie->name.len, name, nlen, in afs_lookup_filldir()
575 if (cookie->found) { in afs_lookup_filldir()
576 if (cookie->nr_fids < 50) { in afs_lookup_filldir()
577 cookie->fids[cookie->nr_fids].vnode = ino; in afs_lookup_filldir()
578 cookie->fids[cookie->nr_fids].unique = dtype; in afs_lookup_filldir()
579 cookie->nr_fids++; in afs_lookup_filldir()
581 } else if (cookie->name.len == nlen && in afs_lookup_filldir()
582 memcmp(cookie->name.name, name, nlen) == 0) { in afs_lookup_filldir()
583 cookie->fids[0].vnode = ino; in afs_lookup_filldir()
584 cookie->fids[0].unique = dtype; in afs_lookup_filldir()
585 cookie->found = 1; in afs_lookup_filldir()
586 if (cookie->one_only) in afs_lookup_filldir()
590 ret = cookie->nr_fids >= 50 ? -1 : 0; in afs_lookup_filldir()
603 struct afs_lookup_cookie *cookie; in afs_do_lookup() local
614 cookie = kzalloc(sizeof(struct afs_lookup_cookie), GFP_KERNEL); in afs_do_lookup()
615 if (!cookie) in afs_do_lookup()
618 cookie->ctx.actor = afs_lookup_filldir; in afs_do_lookup()
619 cookie->name = dentry->d_name; in afs_do_lookup()
620 cookie->nr_fids = 1; /* slot 0 is saved for the fid we actually want */ in afs_do_lookup()
626 cookie->one_only = true; in afs_do_lookup()
630 cookie->fids[i].vid = as->volume->vid; in afs_do_lookup()
633 ret = afs_dir_iterate(dir, &cookie->ctx, key); in afs_do_lookup()
640 if (!cookie->found) in afs_do_lookup()
645 data.fid = cookie->fids[0]; in afs_do_lookup()
646 inode = ilookup5(dir->i_sb, cookie->fids[0].vnode, afs_iget5_test, &data); in afs_do_lookup()
652 cookie->statuses = kcalloc(cookie->nr_fids, sizeof(struct afs_file_status), in afs_do_lookup()
654 if (!cookie->statuses) in afs_do_lookup()
657 cookie->callbacks = kcalloc(cookie->nr_fids, sizeof(struct afs_callback), in afs_do_lookup()
659 if (!cookie->callbacks) in afs_do_lookup()
666 if (cookie->one_only) in afs_do_lookup()
680 cookie->fids, in afs_do_lookup()
681 cookie->statuses, in afs_do_lookup()
682 cookie->callbacks, in afs_do_lookup()
683 cookie->nr_fids, NULL); in afs_do_lookup()
703 cookie->nr_fids = 1; in afs_do_lookup()
709 cookie->fids, in afs_do_lookup()
710 cookie->statuses, in afs_do_lookup()
711 cookie->callbacks, in afs_do_lookup()
723 for (i = 0; i < cookie->nr_fids; i++) in afs_do_lookup()
724 cookie->statuses[i].abort_code = 0; in afs_do_lookup()
730 if (cookie->statuses[0].abort_code != 0) in afs_do_lookup()
731 inode = ERR_PTR(afs_abort_to_error(cookie->statuses[0].abort_code)); in afs_do_lookup()
733 for (i = 0; i < cookie->nr_fids; i++) { in afs_do_lookup()
736 if (cookie->statuses[i].abort_code != 0) in afs_do_lookup()
739 ti = afs_iget(dir->i_sb, key, &cookie->fids[i], in afs_do_lookup()
740 &cookie->statuses[i], in afs_do_lookup()
741 &cookie->callbacks[i], in afs_do_lookup()
753 kfree(cookie->callbacks); in afs_do_lookup()
755 kfree(cookie->statuses); in afs_do_lookup()
757 kfree(cookie); in afs_do_lookup()