Lines Matching refs:port

45 	if (!zfcp_sdev->port)
49 put_device(&zfcp_sdev->port->dev);
87 !(atomic_read(&zfcp_sdev->port->status) &
89 /* only LUN access denied, but port is good
119 struct zfcp_port *port;
126 port = zfcp_get_port_by_wwpn(adapter, rport->port_name);
127 if (!port)
130 zfcp_sdev->erp_action.port = port;
133 if (zfcp_sysfs_port_is_removing(port)) {
134 /* port is already gone */
136 put_device(&port->dev); /* undo zfcp_get_port_by_wwpn() */
141 unit = zfcp_unit_find(port, zfcp_scsi_dev_lun(sdev));
146 put_device(&port->dev);
150 zfcp_sdev->port = port;
161 zfcp_erp_wait(port->adapter);
261 struct zfcp_adapter *adapter = zsdev->port->adapter;
264 .port_handle = zsdev->port->handle,
292 struct zfcp_adapter *adapter = zfcp_sdev->port->adapter;
377 struct zfcp_adapter *adapter = zfcp_sdev->port->adapter;
522 struct zfcp_port *port;
529 list_for_each_entry(port, &adapter->port_list, list)
530 port->rport = NULL;
696 * Abort all pending SCSI commands for a port by closing the
697 * port. Using a reopen avoids a conflict with a shutdown
698 * overwriting a reopen. The "forced" ensures that a disappeared port
704 struct zfcp_port *port;
709 port = zfcp_get_port_by_wwpn(adapter, rport->port_name);
711 if (port) {
712 zfcp_erp_port_forced_reopen(port, 0, "sctrpi1");
713 put_device(&port->dev);
722 static void zfcp_scsi_rport_register(struct zfcp_port *port)
727 if (port->rport)
730 ids.node_name = port->wwnn;
731 ids.port_name = port->wwpn;
732 ids.port_id = port->d_id;
735 zfcp_dbf_rec_trig_lock("scpaddy", port->adapter, port, NULL,
738 rport = fc_remote_port_add(port->adapter->scsi_host, 0, &ids);
740 dev_err(&port->adapter->ccw_device->dev,
741 "Registering port 0x%016Lx failed\n",
742 (unsigned long long)port->wwpn);
746 rport->maxframe_size = port->maxframe_size;
747 rport->supported_classes = port->supported_classes;
748 port->rport = rport;
749 port->starget_id = rport->scsi_target_id;
751 zfcp_unit_queue_scsi_scan(port);
754 static void zfcp_scsi_rport_block(struct zfcp_port *port)
756 struct fc_rport *rport = port->rport;
759 zfcp_dbf_rec_trig_lock("scpdely", port->adapter, port, NULL,
763 port->rport = NULL;
767 void zfcp_scsi_schedule_rport_register(struct zfcp_port *port)
769 get_device(&port->dev);
770 port->rport_task = RPORT_ADD;
772 if (!queue_work(port->adapter->work_queue, &port->rport_work))
773 put_device(&port->dev);
776 void zfcp_scsi_schedule_rport_block(struct zfcp_port *port)
778 get_device(&port->dev);
779 port->rport_task = RPORT_DEL;
781 if (port->rport && queue_work(port->adapter->work_queue,
782 &port->rport_work))
785 put_device(&port->dev);
791 struct zfcp_port *port;
794 list_for_each_entry(port, &adapter->port_list, list)
795 zfcp_scsi_schedule_rport_block(port);
801 struct zfcp_port *port = container_of(work, struct zfcp_port,
805 (port->rport_task == RPORT_ADD) ? 'a' : 'd',
806 port->wwpn); /* < WORKER_DESC_LEN=24 */
807 while (port->rport_task) {
808 if (port->rport_task == RPORT_ADD) {
809 port->rport_task = RPORT_NONE;
810 zfcp_scsi_rport_register(port);
812 port->rport_task = RPORT_NONE;
813 zfcp_scsi_rport_block(port);
817 put_device(&port->dev);