[SCSI] zfcp: Remove UNIT_REGISTERED status flag
Use the device pointer in zfcp_unit for tracking if we have a registered SCSI device. With this approach, the flag ZFCP_STATUS_UNIT_REGISTERED is only redundant and can be removed. Acked-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
a5b11dda12
commit
86f8a1b4b4
4 changed files with 2 additions and 8 deletions
|
@ -72,8 +72,7 @@ static void zfcp_ccw_remove(struct ccw_device *ccw_device)
|
||||||
|
|
||||||
list_for_each_entry_safe(port, p, &port_remove_lh, list) {
|
list_for_each_entry_safe(port, p, &port_remove_lh, list) {
|
||||||
list_for_each_entry_safe(unit, u, &unit_remove_lh, list) {
|
list_for_each_entry_safe(unit, u, &unit_remove_lh, list) {
|
||||||
if (atomic_read(&unit->status) &
|
if (unit->device)
|
||||||
ZFCP_STATUS_UNIT_REGISTERED)
|
|
||||||
scsi_remove_device(unit->device);
|
scsi_remove_device(unit->device);
|
||||||
zfcp_unit_dequeue(unit);
|
zfcp_unit_dequeue(unit);
|
||||||
}
|
}
|
||||||
|
|
|
@ -255,7 +255,6 @@ enum zfcp_wka_status {
|
||||||
/* logical unit status */
|
/* logical unit status */
|
||||||
#define ZFCP_STATUS_UNIT_SHARED 0x00000004
|
#define ZFCP_STATUS_UNIT_SHARED 0x00000004
|
||||||
#define ZFCP_STATUS_UNIT_READONLY 0x00000008
|
#define ZFCP_STATUS_UNIT_READONLY 0x00000008
|
||||||
#define ZFCP_STATUS_UNIT_REGISTERED 0x00000010
|
|
||||||
#define ZFCP_STATUS_UNIT_SCSI_WORK_PENDING 0x00000020
|
#define ZFCP_STATUS_UNIT_SCSI_WORK_PENDING 0x00000020
|
||||||
|
|
||||||
/* FSF request status (this does not have a common part) */
|
/* FSF request status (this does not have a common part) */
|
||||||
|
|
|
@ -1250,8 +1250,6 @@ static void zfcp_erp_action_cleanup(struct zfcp_erp_action *act, int result)
|
||||||
case ZFCP_ERP_ACTION_REOPEN_UNIT:
|
case ZFCP_ERP_ACTION_REOPEN_UNIT:
|
||||||
if ((result == ZFCP_ERP_SUCCEEDED) &&
|
if ((result == ZFCP_ERP_SUCCEEDED) &&
|
||||||
!unit->device && port->rport) {
|
!unit->device && port->rport) {
|
||||||
atomic_set_mask(ZFCP_STATUS_UNIT_REGISTERED,
|
|
||||||
&unit->status);
|
|
||||||
if (!(atomic_read(&unit->status) &
|
if (!(atomic_read(&unit->status) &
|
||||||
ZFCP_STATUS_UNIT_SCSI_WORK_PENDING))
|
ZFCP_STATUS_UNIT_SCSI_WORK_PENDING))
|
||||||
zfcp_erp_schedule_work(unit);
|
zfcp_erp_schedule_work(unit);
|
||||||
|
|
|
@ -27,7 +27,6 @@ char *zfcp_get_fcp_sns_info_ptr(struct fcp_rsp_iu *fcp_rsp_iu)
|
||||||
static void zfcp_scsi_slave_destroy(struct scsi_device *sdpnt)
|
static void zfcp_scsi_slave_destroy(struct scsi_device *sdpnt)
|
||||||
{
|
{
|
||||||
struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata;
|
struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata;
|
||||||
atomic_clear_mask(ZFCP_STATUS_UNIT_REGISTERED, &unit->status);
|
|
||||||
unit->device = NULL;
|
unit->device = NULL;
|
||||||
zfcp_erp_unit_failed(unit, 12, NULL);
|
zfcp_erp_unit_failed(unit, 12, NULL);
|
||||||
zfcp_unit_put(unit);
|
zfcp_unit_put(unit);
|
||||||
|
@ -133,8 +132,7 @@ static int zfcp_scsi_slave_alloc(struct scsi_device *sdp)
|
||||||
|
|
||||||
read_lock_irqsave(&zfcp_data.config_lock, flags);
|
read_lock_irqsave(&zfcp_data.config_lock, flags);
|
||||||
unit = zfcp_unit_lookup(adapter, sdp->channel, sdp->id, sdp->lun);
|
unit = zfcp_unit_lookup(adapter, sdp->channel, sdp->id, sdp->lun);
|
||||||
if (unit &&
|
if (unit) {
|
||||||
(atomic_read(&unit->status) & ZFCP_STATUS_UNIT_REGISTERED)) {
|
|
||||||
sdp->hostdata = unit;
|
sdp->hostdata = unit;
|
||||||
unit->device = sdp;
|
unit->device = sdp;
|
||||||
zfcp_unit_get(unit);
|
zfcp_unit_get(unit);
|
||||||
|
|
Loading…
Add table
Reference in a new issue