Lines Matching defs:tcon

70  * release it as any new DFS referrals must go through its IPC tcon.
217 struct cifs_tcon *tcon;
236 else if (WARN_ON(!mnt_ctx->tcon))
242 tcon = mnt_ctx->tcon;
243 spin_lock(&tcon->tc_lock);
244 if (!tcon->origin_fullpath) {
245 tcon->origin_fullpath = origin_fullpath;
250 spin_unlock(&tcon->tc_lock);
253 queue_delayed_work(dfscache_wq, &tcon->dfs_cache_work,
399 struct cifs_tcon *tcon = ses->tcon_ipc;
419 rc = server->ops->tree_connect(xid, ses, tree, tcon,
422 spin_lock(&tcon->tc_lock);
424 tcon->status = TID_NEED_TCON;
426 tcon->status = TID_GOOD;
427 tcon->need_reconnect = false;
429 spin_unlock(&tcon->tc_lock);
434 struct cifs_tcon *tcon)
436 struct cifs_ses *ses = tcon->ses;
442 static int __tree_connect_dfs_target(const unsigned int xid, struct cifs_tcon *tcon,
447 struct TCP_Server_Info *server = tcon->ses->server;
449 struct cifs_ses *root_ses = CIFS_DFS_ROOT_SES(tcon->ses);
485 tree_connect_ipc(xid, tree, cifs_sb, tcon);
489 rc = ops->tree_connect(xid, tcon->ses, tree, tcon, cifs_sb->local_nls);
501 rc = ops->tree_connect(xid, tcon->ses, tree, tcon, cifs_sb->local_nls);
527 static int tree_connect_dfs_target(const unsigned int xid, struct cifs_tcon *tcon,
533 struct TCP_Server_Info *server = tcon->ses->server;
537 rc = __tree_connect_dfs_target(xid, tcon, cifs_sb, tree, islink, tl);
552 int cifs_tree_connect(const unsigned int xid, struct cifs_tcon *tcon, const struct nls_table *nlsc)
555 struct TCP_Server_Info *server = tcon->ses->server;
564 spin_lock(&tcon->tc_lock);
566 /* if tcon is marked for needing reconnect, update state */
567 if (tcon->need_reconnect)
568 tcon->status = TID_NEED_TCON;
570 if (tcon->status == TID_GOOD) {
571 spin_unlock(&tcon->tc_lock);
575 if (tcon->status != TID_NEW &&
576 tcon->status != TID_NEED_TCON) {
577 spin_unlock(&tcon->tc_lock);
581 tcon->status = TID_IN_TCON;
582 spin_unlock(&tcon->tc_lock);
590 if (tcon->ipc) {
594 rc = ops->tree_connect(xid, tcon->ses, tree, tcon, nlsc);
598 sb = cifs_get_dfs_tcon_super(tcon);
603 * Tree connect to last share in @tcon->tree_name whether dfs super or
608 rc = ops->tree_connect(xid, tcon->ses, tcon->tree_name, tcon,
613 rc = tree_connect_dfs_target(xid, tcon, cifs_sb, tree, ref.server_type == DFS_TYPE_LINK,
622 spin_lock(&tcon->tc_lock);
623 if (tcon->status == TID_IN_TCON)
624 tcon->status = TID_NEED_TCON;
625 spin_unlock(&tcon->tc_lock);
627 spin_lock(&tcon->tc_lock);
628 if (tcon->status == TID_IN_TCON)
629 tcon->status = TID_GOOD;
630 tcon->need_reconnect = false;
631 spin_unlock(&tcon->tc_lock);