Lines Matching refs:tlink

2751 cifs_put_tlink(struct tcon_link *tlink)  in cifs_put_tlink()  argument
2753 if (!tlink || IS_ERR(tlink)) in cifs_put_tlink()
2756 if (!atomic_dec_and_test(&tlink->tl_count) || in cifs_put_tlink()
2757 test_bit(TCON_LINK_IN_TREE, &tlink->tl_flags)) { in cifs_put_tlink()
2758 tlink->tl_time = jiffies; in cifs_put_tlink()
2762 if (!IS_ERR(tlink_tcon(tlink))) in cifs_put_tlink()
2763 cifs_put_tcon(tlink_tcon(tlink)); in cifs_put_tlink()
2764 kfree(tlink); in cifs_put_tlink()
2822 struct tcon_link *tlink; in cifs_match_super() local
2827 tlink = cifs_get_tlink(cifs_sb_master_tlink(cifs_sb)); in cifs_match_super()
2828 if (IS_ERR(tlink)) { in cifs_match_super()
2832 tcon = tlink_tcon(tlink); in cifs_match_super()
2848 cifs_put_tlink(tlink); in cifs_match_super()
3527 struct tcon_link *tlink; in cifs_mount() local
3555 tlink = NULL; in cifs_mount()
3688 tlink = kzalloc(sizeof *tlink, GFP_KERNEL); in cifs_mount()
3689 if (tlink == NULL) { in cifs_mount()
3694 tlink->tl_uid = ses->linux_uid; in cifs_mount()
3695 tlink->tl_tcon = tcon; in cifs_mount()
3696 tlink->tl_time = jiffies; in cifs_mount()
3697 set_bit(TCON_LINK_MASTER, &tlink->tl_flags); in cifs_mount()
3698 set_bit(TCON_LINK_IN_TREE, &tlink->tl_flags); in cifs_mount()
3700 cifs_sb->master_tlink = tlink; in cifs_mount()
3702 tlink_rb_insert(&cifs_sb->tlink_tree, tlink); in cifs_mount()
3905 struct tcon_link *tlink; in cifs_umount() local
3911 tlink = rb_entry(node, struct tcon_link, tl_rbnode); in cifs_umount()
3912 cifs_get_tlink(tlink); in cifs_umount()
3913 clear_bit(TCON_LINK_IN_TREE, &tlink->tl_flags); in cifs_umount()
3917 cifs_put_tlink(tlink); in cifs_umount()
4059 struct tcon_link *tlink; in tlink_rb_search() local
4062 tlink = rb_entry(node, struct tcon_link, tl_rbnode); in tlink_rb_search()
4064 if (uid_gt(tlink->tl_uid, uid)) in tlink_rb_search()
4066 else if (uid_lt(tlink->tl_uid, uid)) in tlink_rb_search()
4069 return tlink; in tlink_rb_search()
4079 struct tcon_link *tlink; in tlink_rb_insert() local
4082 tlink = rb_entry(*new, struct tcon_link, tl_rbnode); in tlink_rb_insert()
4085 if (uid_gt(tlink->tl_uid, new_tlink->tl_uid)) in tlink_rb_insert()
4116 struct tcon_link *tlink, *newtlink; in cifs_sb_tlink() local
4122 tlink = tlink_rb_search(&cifs_sb->tlink_tree, fsuid); in cifs_sb_tlink()
4123 if (tlink) in cifs_sb_tlink()
4124 cifs_get_tlink(tlink); in cifs_sb_tlink()
4127 if (tlink == NULL) { in cifs_sb_tlink()
4128 newtlink = kzalloc(sizeof(*tlink), GFP_KERNEL); in cifs_sb_tlink()
4139 tlink = tlink_rb_search(&cifs_sb->tlink_tree, fsuid); in cifs_sb_tlink()
4140 if (tlink) { in cifs_sb_tlink()
4141 cifs_get_tlink(tlink); in cifs_sb_tlink()
4146 tlink = newtlink; in cifs_sb_tlink()
4147 tlink_rb_insert(&cifs_sb->tlink_tree, tlink); in cifs_sb_tlink()
4151 ret = wait_on_bit(&tlink->tl_flags, TCON_LINK_PENDING, in cifs_sb_tlink()
4154 cifs_put_tlink(tlink); in cifs_sb_tlink()
4159 if (!IS_ERR(tlink->tl_tcon)) in cifs_sb_tlink()
4160 return tlink; in cifs_sb_tlink()
4163 if (time_before(jiffies, tlink->tl_time + TLINK_ERROR_EXPIRE)) { in cifs_sb_tlink()
4164 cifs_put_tlink(tlink); in cifs_sb_tlink()
4168 if (test_and_set_bit(TCON_LINK_PENDING, &tlink->tl_flags)) in cifs_sb_tlink()
4172 tlink->tl_tcon = cifs_construct_tcon(cifs_sb, fsuid); in cifs_sb_tlink()
4173 clear_bit(TCON_LINK_PENDING, &tlink->tl_flags); in cifs_sb_tlink()
4174 wake_up_bit(&tlink->tl_flags, TCON_LINK_PENDING); in cifs_sb_tlink()
4176 if (IS_ERR(tlink->tl_tcon)) { in cifs_sb_tlink()
4177 cifs_put_tlink(tlink); in cifs_sb_tlink()
4181 return tlink; in cifs_sb_tlink()
4196 struct tcon_link *tlink; in cifs_prune_tlinks() local
4210 tlink = rb_entry(tmp, struct tcon_link, tl_rbnode); in cifs_prune_tlinks()
4212 if (test_bit(TCON_LINK_MASTER, &tlink->tl_flags) || in cifs_prune_tlinks()
4213 atomic_read(&tlink->tl_count) != 0 || in cifs_prune_tlinks()
4214 time_after(tlink->tl_time + TLINK_IDLE_EXPIRE, jiffies)) in cifs_prune_tlinks()
4217 cifs_get_tlink(tlink); in cifs_prune_tlinks()
4218 clear_bit(TCON_LINK_IN_TREE, &tlink->tl_flags); in cifs_prune_tlinks()
4222 cifs_put_tlink(tlink); in cifs_prune_tlinks()