Lines Matching refs:tlink

3557 cifs_put_tlink(struct tcon_link *tlink)  in cifs_put_tlink()  argument
3559 if (!tlink || IS_ERR(tlink)) in cifs_put_tlink()
3562 if (!atomic_dec_and_test(&tlink->tl_count) || in cifs_put_tlink()
3563 test_bit(TCON_LINK_IN_TREE, &tlink->tl_flags)) { in cifs_put_tlink()
3564 tlink->tl_time = jiffies; in cifs_put_tlink()
3568 if (!IS_ERR(tlink_tcon(tlink))) in cifs_put_tlink()
3569 cifs_put_tcon(tlink_tcon(tlink)); in cifs_put_tlink()
3570 kfree(tlink); in cifs_put_tlink()
3642 struct tcon_link *tlink; in cifs_match_super() local
3647 tlink = cifs_get_tlink(cifs_sb_master_tlink(cifs_sb)); in cifs_match_super()
3648 if (IS_ERR(tlink)) { in cifs_match_super()
3652 tcon = tlink_tcon(tlink); in cifs_match_super()
3669 cifs_put_tlink(tlink); in cifs_match_super()
4297 struct tcon_link *tlink; in mount_setup_tlink() local
4300 tlink = kzalloc(sizeof(*tlink), GFP_KERNEL); in mount_setup_tlink()
4301 if (tlink == NULL) in mount_setup_tlink()
4304 tlink->tl_uid = ses->linux_uid; in mount_setup_tlink()
4305 tlink->tl_tcon = tcon; in mount_setup_tlink()
4306 tlink->tl_time = jiffies; in mount_setup_tlink()
4307 set_bit(TCON_LINK_MASTER, &tlink->tl_flags); in mount_setup_tlink()
4308 set_bit(TCON_LINK_IN_TREE, &tlink->tl_flags); in mount_setup_tlink()
4310 cifs_sb->master_tlink = tlink; in mount_setup_tlink()
4312 tlink_rb_insert(&cifs_sb->tlink_tree, tlink); in mount_setup_tlink()
5115 struct tcon_link *tlink; in cifs_umount() local
5121 tlink = rb_entry(node, struct tcon_link, tl_rbnode); in cifs_umount()
5122 cifs_get_tlink(tlink); in cifs_umount()
5123 clear_bit(TCON_LINK_IN_TREE, &tlink->tl_flags); in cifs_umount()
5127 cifs_put_tlink(tlink); in cifs_umount()
5285 struct tcon_link *tlink; in tlink_rb_search() local
5288 tlink = rb_entry(node, struct tcon_link, tl_rbnode); in tlink_rb_search()
5290 if (uid_gt(tlink->tl_uid, uid)) in tlink_rb_search()
5292 else if (uid_lt(tlink->tl_uid, uid)) in tlink_rb_search()
5295 return tlink; in tlink_rb_search()
5305 struct tcon_link *tlink; in tlink_rb_insert() local
5308 tlink = rb_entry(*new, struct tcon_link, tl_rbnode); in tlink_rb_insert()
5311 if (uid_gt(tlink->tl_uid, new_tlink->tl_uid)) in tlink_rb_insert()
5342 struct tcon_link *tlink, *newtlink; in cifs_sb_tlink() local
5348 tlink = tlink_rb_search(&cifs_sb->tlink_tree, fsuid); in cifs_sb_tlink()
5349 if (tlink) in cifs_sb_tlink()
5350 cifs_get_tlink(tlink); in cifs_sb_tlink()
5353 if (tlink == NULL) { in cifs_sb_tlink()
5354 newtlink = kzalloc(sizeof(*tlink), GFP_KERNEL); in cifs_sb_tlink()
5365 tlink = tlink_rb_search(&cifs_sb->tlink_tree, fsuid); in cifs_sb_tlink()
5366 if (tlink) { in cifs_sb_tlink()
5367 cifs_get_tlink(tlink); in cifs_sb_tlink()
5372 tlink = newtlink; in cifs_sb_tlink()
5373 tlink_rb_insert(&cifs_sb->tlink_tree, tlink); in cifs_sb_tlink()
5377 ret = wait_on_bit(&tlink->tl_flags, TCON_LINK_PENDING, in cifs_sb_tlink()
5380 cifs_put_tlink(tlink); in cifs_sb_tlink()
5385 if (!IS_ERR(tlink->tl_tcon)) in cifs_sb_tlink()
5386 return tlink; in cifs_sb_tlink()
5389 if (time_before(jiffies, tlink->tl_time + TLINK_ERROR_EXPIRE)) { in cifs_sb_tlink()
5390 cifs_put_tlink(tlink); in cifs_sb_tlink()
5394 if (test_and_set_bit(TCON_LINK_PENDING, &tlink->tl_flags)) in cifs_sb_tlink()
5398 tlink->tl_tcon = cifs_construct_tcon(cifs_sb, fsuid); in cifs_sb_tlink()
5399 clear_bit(TCON_LINK_PENDING, &tlink->tl_flags); in cifs_sb_tlink()
5400 wake_up_bit(&tlink->tl_flags, TCON_LINK_PENDING); in cifs_sb_tlink()
5402 if (IS_ERR(tlink->tl_tcon)) { in cifs_sb_tlink()
5403 cifs_put_tlink(tlink); in cifs_sb_tlink()
5407 return tlink; in cifs_sb_tlink()
5422 struct tcon_link *tlink; in cifs_prune_tlinks() local
5436 tlink = rb_entry(tmp, struct tcon_link, tl_rbnode); in cifs_prune_tlinks()
5438 if (test_bit(TCON_LINK_MASTER, &tlink->tl_flags) || in cifs_prune_tlinks()
5439 atomic_read(&tlink->tl_count) != 0 || in cifs_prune_tlinks()
5440 time_after(tlink->tl_time + TLINK_IDLE_EXPIRE, jiffies)) in cifs_prune_tlinks()
5443 cifs_get_tlink(tlink); in cifs_prune_tlinks()
5444 clear_bit(TCON_LINK_IN_TREE, &tlink->tl_flags); in cifs_prune_tlinks()
5448 cifs_put_tlink(tlink); in cifs_prune_tlinks()