diff options
author | Christof Schmitt <christof.schmitt@de.ibm.com> | 2010-09-08 08:39:59 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-09-16 22:54:21 -0400 |
commit | a1ca48319a9aa1c5b57ce142f538e76050bb8972 (patch) | |
tree | 0cfaec3fddadd2de778f721d6dd98aa34f19ff2d /drivers/s390/scsi/zfcp_erp.c | |
parent | c61b536c97f225a74cf430716fdb243dfafe9d48 (diff) |
[SCSI] zfcp: Move ACL/CFDC code to zfcp_cfdc.c
Move the code evaluating the ACL/CFDC specific errors to the file
zfcp_cfdc.c. With this change, all code related to the old access
control feature is kept in one file, not split across zfcp_erp.c and
zfcp_fsf.c.
Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390/scsi/zfcp_erp.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_erp.c | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index 734fc838931..9e7d029ac7a 100644 --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c | |||
@@ -1593,85 +1593,3 @@ void zfcp_erp_lun_boxed(struct scsi_device *sdev, char *id, void *ref) | |||
1593 | ZFCP_STATUS_COMMON_ACCESS_BOXED, ZFCP_SET); | 1593 | ZFCP_STATUS_COMMON_ACCESS_BOXED, ZFCP_SET); |
1594 | zfcp_erp_lun_reopen(sdev, ZFCP_STATUS_COMMON_ERP_FAILED, id, ref); | 1594 | zfcp_erp_lun_reopen(sdev, ZFCP_STATUS_COMMON_ERP_FAILED, id, ref); |
1595 | } | 1595 | } |
1596 | |||
1597 | /** | ||
1598 | * zfcp_erp_port_access_denied - Adapter denied access to port. | ||
1599 | * @port: port where access has been denied | ||
1600 | * @id: id for debug trace | ||
1601 | * @ref: reference for debug trace | ||
1602 | * | ||
1603 | * Since the adapter has denied access, stop using the port and the | ||
1604 | * attached LUNs. | ||
1605 | */ | ||
1606 | void zfcp_erp_port_access_denied(struct zfcp_port *port, char *id, void *ref) | ||
1607 | { | ||
1608 | zfcp_erp_modify_port_status(port, id, ref, | ||
1609 | ZFCP_STATUS_COMMON_ERP_FAILED | | ||
1610 | ZFCP_STATUS_COMMON_ACCESS_DENIED, ZFCP_SET); | ||
1611 | } | ||
1612 | |||
1613 | /** | ||
1614 | * zfcp_erp_lun_access_denied - Adapter denied access to LUN. | ||
1615 | * @sdev: SCSI device / LUN where access has been denied | ||
1616 | * @id: id for debug trace | ||
1617 | * @ref: reference for debug trace | ||
1618 | * | ||
1619 | * Since the adapter has denied access, stop using the LUN. | ||
1620 | */ | ||
1621 | void zfcp_erp_lun_access_denied(struct scsi_device *sdev, char *id, void *ref) | ||
1622 | { | ||
1623 | zfcp_erp_modify_lun_status(sdev, id, ref, | ||
1624 | ZFCP_STATUS_COMMON_ERP_FAILED | | ||
1625 | ZFCP_STATUS_COMMON_ACCESS_DENIED, ZFCP_SET); | ||
1626 | } | ||
1627 | |||
1628 | static void zfcp_erp_lun_access_changed(struct scsi_device *sdev, char *id, | ||
1629 | void *ref) | ||
1630 | { | ||
1631 | struct zfcp_scsi_dev *zfcp_sdev = sdev_to_zfcp(sdev); | ||
1632 | int status = atomic_read(&zfcp_sdev->status); | ||
1633 | |||
1634 | if (!(status & (ZFCP_STATUS_COMMON_ACCESS_DENIED | | ||
1635 | ZFCP_STATUS_COMMON_ACCESS_BOXED))) | ||
1636 | return; | ||
1637 | |||
1638 | zfcp_erp_lun_reopen(sdev, ZFCP_STATUS_COMMON_ERP_FAILED, id, ref); | ||
1639 | } | ||
1640 | |||
1641 | static void zfcp_erp_port_access_changed(struct zfcp_port *port, char *id, | ||
1642 | void *ref) | ||
1643 | { | ||
1644 | struct scsi_device *sdev; | ||
1645 | int status = atomic_read(&port->status); | ||
1646 | |||
1647 | if (!(status & (ZFCP_STATUS_COMMON_ACCESS_DENIED | | ||
1648 | ZFCP_STATUS_COMMON_ACCESS_BOXED))) { | ||
1649 | shost_for_each_device(sdev, port->adapter->scsi_host) | ||
1650 | if (sdev_to_zfcp(sdev)->port == port) | ||
1651 | zfcp_erp_lun_access_changed(sdev, id, ref); | ||
1652 | return; | ||
1653 | } | ||
1654 | |||
1655 | zfcp_erp_port_reopen(port, ZFCP_STATUS_COMMON_ERP_FAILED, id, ref); | ||
1656 | } | ||
1657 | |||
1658 | /** | ||
1659 | * zfcp_erp_adapter_access_changed - Process change in adapter ACT | ||
1660 | * @adapter: Adapter where the Access Control Table (ACT) changed | ||
1661 | * @id: Id for debug trace | ||
1662 | * @ref: Reference for debug trace | ||
1663 | */ | ||
1664 | void zfcp_erp_adapter_access_changed(struct zfcp_adapter *adapter, char *id, | ||
1665 | void *ref) | ||
1666 | { | ||
1667 | unsigned long flags; | ||
1668 | struct zfcp_port *port; | ||
1669 | |||
1670 | if (adapter->connection_features & FSF_FEATURE_NPIV_MODE) | ||
1671 | return; | ||
1672 | |||
1673 | read_lock_irqsave(&adapter->port_list_lock, flags); | ||
1674 | list_for_each_entry(port, &adapter->port_list, list) | ||
1675 | zfcp_erp_port_access_changed(port, id, ref); | ||
1676 | read_unlock_irqrestore(&adapter->port_list_lock, flags); | ||
1677 | } | ||