Lines Matching defs:tlink

3428 cifs_put_tlink(struct tcon_link *tlink)
3430 if (!tlink || IS_ERR(tlink))
3433 if (!atomic_dec_and_test(&tlink->tl_count) ||
3434 test_bit(TCON_LINK_IN_TREE, &tlink->tl_flags)) {
3435 tlink->tl_time = jiffies;
3439 if (!IS_ERR(tlink_tcon(tlink)))
3440 cifs_put_tcon(tlink_tcon(tlink));
3441 kfree(tlink);
3515 struct tcon_link *tlink;
3520 tlink = cifs_get_tlink(cifs_sb_master_tlink(cifs_sb));
3521 if (tlink == NULL) {
3522 /* can not match superblock if tlink were ever null */
3526 tcon = tlink_tcon(tlink);
3543 cifs_put_tlink(tlink);
4169 struct tcon_link *tlink;
4172 tlink = kzalloc(sizeof(*tlink), GFP_KERNEL);
4173 if (tlink == NULL)
4176 tlink->tl_uid = ses->linux_uid;
4177 tlink->tl_tcon = tcon;
4178 tlink->tl_time = jiffies;
4179 set_bit(TCON_LINK_MASTER, &tlink->tl_flags);
4180 set_bit(TCON_LINK_IN_TREE, &tlink->tl_flags);
4182 cifs_sb->master_tlink = tlink;
4184 tlink_rb_insert(&cifs_sb->tlink_tree, tlink);
5003 struct tcon_link *tlink;
5009 tlink = rb_entry(node, struct tcon_link, tl_rbnode);
5010 cifs_get_tlink(tlink);
5011 clear_bit(TCON_LINK_IN_TREE, &tlink->tl_flags);
5015 cifs_put_tlink(tlink);
5172 /* find and return a tlink with given uid */
5177 struct tcon_link *tlink;
5180 tlink = rb_entry(node, struct tcon_link, tl_rbnode);
5182 if (uid_gt(tlink->tl_uid, uid))
5184 else if (uid_lt(tlink->tl_uid, uid))
5187 return tlink;
5197 struct tcon_link *tlink;
5200 tlink = rb_entry(*new, struct tcon_link, tl_rbnode);
5203 if (uid_gt(tlink->tl_uid, new_tlink->tl_uid))
5234 struct tcon_link *tlink, *newtlink;
5240 tlink = tlink_rb_search(&cifs_sb->tlink_tree, fsuid);
5241 if (tlink)
5242 cifs_get_tlink(tlink);
5245 if (tlink == NULL) {
5246 newtlink = kzalloc(sizeof(*tlink), GFP_KERNEL);
5257 tlink = tlink_rb_search(&cifs_sb->tlink_tree, fsuid);
5258 if (tlink) {
5259 cifs_get_tlink(tlink);
5264 tlink = newtlink;
5265 tlink_rb_insert(&cifs_sb->tlink_tree, tlink);
5269 ret = wait_on_bit(&tlink->tl_flags, TCON_LINK_PENDING,
5272 cifs_put_tlink(tlink);
5277 if (!IS_ERR(tlink->tl_tcon))
5278 return tlink;
5281 if (time_before(jiffies, tlink->tl_time + TLINK_ERROR_EXPIRE)) {
5282 cifs_put_tlink(tlink);
5286 if (test_and_set_bit(TCON_LINK_PENDING, &tlink->tl_flags))
5290 tlink->tl_tcon = cifs_construct_tcon(cifs_sb, fsuid);
5291 clear_bit(TCON_LINK_PENDING, &tlink->tl_flags);
5292 wake_up_bit(&tlink->tl_flags, TCON_LINK_PENDING);
5294 if (IS_ERR(tlink->tl_tcon)) {
5295 cifs_put_tlink(tlink);
5299 return tlink;
5314 struct tcon_link *tlink;
5317 * Because we drop the spinlock in the loop in order to put the tlink
5328 tlink = rb_entry(tmp, struct tcon_link, tl_rbnode);
5330 if (test_bit(TCON_LINK_MASTER, &tlink->tl_flags) ||
5331 atomic_read(&tlink->tl_count) != 0 ||
5332 time_after(tlink->tl_time + TLINK_IDLE_EXPIRE, jiffies))
5335 cifs_get_tlink(tlink);
5336 clear_bit(TCON_LINK_IN_TREE, &tlink->tl_flags);
5340 cifs_put_tlink(tlink);