Lines Matching defs:wka_port

146 static int zfcp_fc_wka_port_get(struct zfcp_fc_wka_port *wka_port)
150 if (mutex_lock_interruptible(&wka_port->mutex))
153 if (wka_port->status == ZFCP_FC_WKA_PORT_OFFLINE ||
154 wka_port->status == ZFCP_FC_WKA_PORT_CLOSING) {
155 wka_port->status = ZFCP_FC_WKA_PORT_OPENING;
156 if (zfcp_fsf_open_wka_port(wka_port)) {
158 wka_port->status = ZFCP_FC_WKA_PORT_OFFLINE;
163 wait_event(wka_port->opened,
164 wka_port->status == ZFCP_FC_WKA_PORT_ONLINE ||
165 wka_port->status == ZFCP_FC_WKA_PORT_OFFLINE);
167 if (wka_port->status == ZFCP_FC_WKA_PORT_ONLINE) {
168 atomic_inc(&wka_port->refcount);
173 mutex_unlock(&wka_port->mutex);
180 struct zfcp_fc_wka_port *wka_port =
183 mutex_lock(&wka_port->mutex);
184 if ((atomic_read(&wka_port->refcount) != 0) ||
185 (wka_port->status != ZFCP_FC_WKA_PORT_ONLINE))
188 wka_port->status = ZFCP_FC_WKA_PORT_CLOSING;
189 if (zfcp_fsf_close_wka_port(wka_port)) {
191 wka_port->status = ZFCP_FC_WKA_PORT_OFFLINE;
194 wait_event(wka_port->closed,
195 wka_port->status == ZFCP_FC_WKA_PORT_OFFLINE);
197 mutex_unlock(&wka_port->mutex);
200 static void zfcp_fc_wka_port_put(struct zfcp_fc_wka_port *wka_port)
202 if (atomic_dec_return(&wka_port->refcount) != 0)
205 queue_delayed_work(wka_port->adapter->work_queue, &wka_port->work,
209 static void zfcp_fc_wka_port_init(struct zfcp_fc_wka_port *wka_port, u32 d_id,
212 init_waitqueue_head(&wka_port->opened);
213 init_waitqueue_head(&wka_port->closed);
215 wka_port->adapter = adapter;
216 wka_port->d_id = d_id;
218 wka_port->status = ZFCP_FC_WKA_PORT_OFFLINE;
219 atomic_set(&wka_port->refcount, 0);
220 mutex_init(&wka_port->mutex);
221 INIT_DELAYED_WORK(&wka_port->work, zfcp_fc_wka_port_offline);
1021 struct zfcp_fc_wka_port *wka_port;
1023 wka_port = zfcp_fc_job_wka_port(job);
1024 zfcp_fc_wka_port_put(wka_port);
1057 struct zfcp_fc_wka_port *wka_port;
1059 wka_port = zfcp_fc_job_wka_port(job);
1060 if (!wka_port)
1063 ret = zfcp_fc_wka_port_get(wka_port);
1068 ret = zfcp_fsf_send_ct(wka_port, ct, NULL, job->timeout / HZ);
1070 zfcp_fc_wka_port_put(wka_port);