• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/scsi/

Lines Matching defs:session

52 static atomic_t iscsi_session_nr; /* sysfs session id for next new session */
163 * Returns the matching session to a given sid
206 struct iscsi_cls_session *session = iscsi_dev_to_session(dev);
209 shost = iscsi_session_to_shost(session);
211 kfree(session);
223 struct iscsi_cls_session *session;
226 list_for_each_entry(session, &ihost->sessions, host_list) {
228 (id == SCAN_WILD_CARD || id == session->target_id))
229 scsi_scan_target(&session->dev, 0,
230 session->target_id, lun, 1);
239 struct iscsi_cls_session *session =
243 dev_printk(KERN_INFO, &session->dev, "iscsi: session recovery timed "
244 "out after %d secs\n", session->recovery_tmo);
246 if (session->transport->session_recovery_timedout)
247 session->transport->session_recovery_timedout(session);
249 scsi_target_unblock(&session->dev);
252 void iscsi_unblock_session(struct iscsi_cls_session *session)
254 if (!cancel_delayed_work(&session->recovery_work))
256 scsi_target_unblock(&session->dev);
260 void iscsi_block_session(struct iscsi_cls_session *session)
262 scsi_target_block(&session->dev);
263 schedule_delayed_work(&session->recovery_work,
264 session->recovery_tmo * HZ);
272 struct iscsi_cls_session *session;
274 session = kzalloc(sizeof(*session) + transport->sessiondata_size,
276 if (!session)
279 session->transport = transport;
280 session->recovery_tmo = 120;
281 INIT_DELAYED_WORK(&session->recovery_work, session_recovery_timedout);
282 INIT_LIST_HEAD(&session->host_list);
283 INIT_LIST_HEAD(&session->sess_list);
287 session->dev.parent = &shost->shost_gendev;
288 session->dev.release = iscsi_session_release;
289 device_initialize(&session->dev);
291 session->dd_data = &session[1];
292 return session;
296 int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
298 struct Scsi_Host *shost = iscsi_session_to_shost(session);
303 session->sid = atomic_add_return(1, &iscsi_session_nr);
304 session->target_id = target_id;
306 snprintf(session->dev.bus_id, BUS_ID_SIZE, "session%u",
307 session->sid);
308 err = device_add(&session->dev);
310 dev_printk(KERN_ERR, &session->dev, "iscsi: could not "
311 "register session's dev\n");
314 transport_register_device(&session->dev);
317 list_add(&session->host_list, &ihost->sessions);
328 * iscsi_create_session - create iscsi class session
339 struct iscsi_cls_session *session;
341 session = iscsi_alloc_session(shost, transport);
342 if (!session)
345 if (iscsi_add_session(session, target_id)) {
346 iscsi_free_session(session);
349 return session;
353 void iscsi_remove_session(struct iscsi_cls_session *session)
355 struct Scsi_Host *shost = iscsi_session_to_shost(session);
358 if (!cancel_delayed_work(&session->recovery_work))
362 list_del(&session->host_list);
365 scsi_remove_target(&session->dev);
367 transport_unregister_device(&session->dev);
368 device_del(&session->dev);
372 void iscsi_free_session(struct iscsi_cls_session *session)
374 put_device(&session->dev);
380 * iscsi_destroy_session - destroy iscsi session
381 * @session: iscsi_session
386 int iscsi_destroy_session(struct iscsi_cls_session *session)
388 iscsi_remove_session(session);
389 iscsi_free_session(session);
410 * @session: iscsi cls session
414 * is child of the session so cid must be unique for all connections
415 * on the session.
423 iscsi_create_conn(struct iscsi_cls_session *session, uint32_t cid)
425 struct iscsi_transport *transport = session->transport;
441 if (!get_device(&session->dev))
445 session->sid, cid);
446 conn->dev.parent = &session->dev;
458 put_device(&session->dev);
468 * @session: iscsi cls session
685 * iscsi_if_destroy_session_done - send session destr. completion event
686 * @conn: last connection for session
689 * removed a session.
694 struct iscsi_cls_session *session;
706 session = iscsi_dev_to_session(conn->dev.parent);
707 shost = iscsi_session_to_shost(session);
712 "session creation event\n");
721 ev->r.d_session.sid = session->sid;
730 "session destruction event. Check iscsi daemon\n");
733 list_del(&session->sess_list);
746 * iscsi_if_create_session_done - send session creation completion event
747 * @conn: leading connection for session
750 * created a session or a existing session is back in the logged in state.
755 struct iscsi_cls_session *session;
767 session = iscsi_dev_to_session(conn->dev.parent);
768 shost = iscsi_session_to_shost(session);
773 "session creation event\n");
782 ev->r.c_session_ret.sid = session->sid;
791 "session creation event. Check iscsi daemon\n");
794 list_add(&session->sess_list, &sesslist);
809 struct iscsi_cls_session *session;
813 session = transport->create_session(transport, &priv->t,
816 if (!session)
820 list_add(&session->sess_list, &sesslist);
824 ev->r.c_session_ret.sid = session->sid;
832 struct iscsi_cls_session *session;
835 session = iscsi_session_lookup(ev->u.c_conn.sid);
836 if (!session) {
837 printk(KERN_ERR "iscsi: invalid session %d\n",
842 conn = transport->create_conn(session, ev->u.c_conn.cid);
845 "connection for session %d\n",
846 session->sid);
850 ev->r.c_conn_ret.sid = session->sid;
885 struct iscsi_cls_session *session;
888 session = iscsi_session_lookup(ev->u.set_param.sid);
890 if (!conn || !session)
897 session->recovery_tmo = value;
963 struct iscsi_cls_session *session;
982 session = iscsi_session_lookup(ev->u.d_session.sid);
983 if (session) {
985 list_del(&session->sess_list);
988 transport->destroy_session(session);
999 session = iscsi_session_lookup(ev->u.b_conn.sid);
1002 if (session && conn)
1003 ev->r.retcode = transport->bind_conn(session, conn,
1156 * iSCSI session attrs
1162 struct iscsi_cls_session *session = iscsi_cdev_to_session(cdev); \
1163 struct iscsi_transport *t = session->transport; \
1164 return t->get_session_param(session, param, buf); \
1187 struct iscsi_cls_session *session = iscsi_cdev_to_session(cdev);\
1188 return sprintf(buf, format"\n", session->field); \
1223 struct iscsi_cls_session *session;
1230 session = iscsi_dev_to_session(dev);
1231 shost = iscsi_session_to_shost(session);
1245 struct iscsi_cls_session *session;
1254 session = iscsi_dev_to_session(conn->dev.parent);
1255 shost = iscsi_session_to_shost(session);
1346 /* session parameters */