Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86f8a1b4 authored by Christof Schmitt's avatar Christof Schmitt Committed by James Bottomley
Browse files

[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: default avatarSwen Schillig <swen@vnet.ibm.com>
Signed-off-by: default avatarChristof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent a5b11dda
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -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);
		}
		}
+0 −1
Original line number Original line Diff line number Diff line
@@ -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) */
+0 −2
Original line number Original line Diff line number Diff line
@@ -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);
+1 −3
Original line number Original line Diff line number Diff line
@@ -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);