Lines Matching refs:tlink

2622 cifs_put_tlink(struct tcon_link *tlink)  in cifs_put_tlink()  argument
2624 if (!tlink || IS_ERR(tlink)) in cifs_put_tlink()
2627 if (!atomic_dec_and_test(&tlink->tl_count) || in cifs_put_tlink()
2628 test_bit(TCON_LINK_IN_TREE, &tlink->tl_flags)) { in cifs_put_tlink()
2629 tlink->tl_time = jiffies; in cifs_put_tlink()
2633 if (!IS_ERR(tlink_tcon(tlink))) in cifs_put_tlink()
2634 cifs_put_tcon(tlink_tcon(tlink)); in cifs_put_tlink()
2635 kfree(tlink); in cifs_put_tlink()
2714 struct tcon_link *tlink; in cifs_match_super() local
2719 tlink = cifs_get_tlink(cifs_sb_master_tlink(cifs_sb)); in cifs_match_super()
2720 if (tlink == NULL) { in cifs_match_super()
2725 tcon = tlink_tcon(tlink); in cifs_match_super()
2749 cifs_put_tlink(tlink); in cifs_match_super()
3322 struct tcon_link *tlink; in mount_setup_tlink() local
3325 tlink = kzalloc(sizeof(*tlink), GFP_KERNEL); in mount_setup_tlink()
3326 if (tlink == NULL) in mount_setup_tlink()
3329 tlink->tl_uid = ses->linux_uid; in mount_setup_tlink()
3330 tlink->tl_tcon = tcon; in mount_setup_tlink()
3331 tlink->tl_time = jiffies; in mount_setup_tlink()
3332 set_bit(TCON_LINK_MASTER, &tlink->tl_flags); in mount_setup_tlink()
3333 set_bit(TCON_LINK_IN_TREE, &tlink->tl_flags); in mount_setup_tlink()
3335 cifs_sb->master_tlink = tlink; in mount_setup_tlink()
3337 tlink_rb_insert(&cifs_sb->tlink_tree, tlink); in mount_setup_tlink()
4045 struct tcon_link *tlink; in cifs_umount() local
4051 tlink = rb_entry(node, struct tcon_link, tl_rbnode); in cifs_umount()
4052 cifs_get_tlink(tlink); in cifs_umount()
4053 clear_bit(TCON_LINK_IN_TREE, &tlink->tl_flags); in cifs_umount()
4057 cifs_put_tlink(tlink); in cifs_umount()
4280 struct tcon_link *tlink; in tlink_rb_search() local
4283 tlink = rb_entry(node, struct tcon_link, tl_rbnode); in tlink_rb_search()
4285 if (uid_gt(tlink->tl_uid, uid)) in tlink_rb_search()
4287 else if (uid_lt(tlink->tl_uid, uid)) in tlink_rb_search()
4290 return tlink; in tlink_rb_search()
4300 struct tcon_link *tlink; in tlink_rb_insert() local
4303 tlink = rb_entry(*new, struct tcon_link, tl_rbnode); in tlink_rb_insert()
4306 if (uid_gt(tlink->tl_uid, new_tlink->tl_uid)) in tlink_rb_insert()
4337 struct tcon_link *tlink, *newtlink; in cifs_sb_tlink() local
4343 tlink = tlink_rb_search(&cifs_sb->tlink_tree, fsuid); in cifs_sb_tlink()
4344 if (tlink) in cifs_sb_tlink()
4345 cifs_get_tlink(tlink); in cifs_sb_tlink()
4348 if (tlink == NULL) { in cifs_sb_tlink()
4349 newtlink = kzalloc(sizeof(*tlink), GFP_KERNEL); in cifs_sb_tlink()
4360 tlink = tlink_rb_search(&cifs_sb->tlink_tree, fsuid); in cifs_sb_tlink()
4361 if (tlink) { in cifs_sb_tlink()
4362 cifs_get_tlink(tlink); in cifs_sb_tlink()
4367 tlink = newtlink; in cifs_sb_tlink()
4368 tlink_rb_insert(&cifs_sb->tlink_tree, tlink); in cifs_sb_tlink()
4372 ret = wait_on_bit(&tlink->tl_flags, TCON_LINK_PENDING, in cifs_sb_tlink()
4375 cifs_put_tlink(tlink); in cifs_sb_tlink()
4380 if (!IS_ERR(tlink->tl_tcon)) in cifs_sb_tlink()
4381 return tlink; in cifs_sb_tlink()
4384 if (time_before(jiffies, tlink->tl_time + TLINK_ERROR_EXPIRE)) { in cifs_sb_tlink()
4385 cifs_put_tlink(tlink); in cifs_sb_tlink()
4389 if (test_and_set_bit(TCON_LINK_PENDING, &tlink->tl_flags)) in cifs_sb_tlink()
4393 tlink->tl_tcon = cifs_construct_tcon(cifs_sb, fsuid); in cifs_sb_tlink()
4394 clear_bit(TCON_LINK_PENDING, &tlink->tl_flags); in cifs_sb_tlink()
4395 wake_up_bit(&tlink->tl_flags, TCON_LINK_PENDING); in cifs_sb_tlink()
4397 if (IS_ERR(tlink->tl_tcon)) { in cifs_sb_tlink()
4398 cifs_put_tlink(tlink); in cifs_sb_tlink()
4402 return tlink; in cifs_sb_tlink()
4417 struct tcon_link *tlink; in cifs_prune_tlinks() local
4431 tlink = rb_entry(tmp, struct tcon_link, tl_rbnode); in cifs_prune_tlinks()
4433 if (test_bit(TCON_LINK_MASTER, &tlink->tl_flags) || in cifs_prune_tlinks()
4434 atomic_read(&tlink->tl_count) != 0 || in cifs_prune_tlinks()
4435 time_after(tlink->tl_time + TLINK_IDLE_EXPIRE, jiffies)) in cifs_prune_tlinks()
4438 cifs_get_tlink(tlink); in cifs_prune_tlinks()
4439 clear_bit(TCON_LINK_IN_TREE, &tlink->tl_flags); in cifs_prune_tlinks()
4443 cifs_put_tlink(tlink); in cifs_prune_tlinks()