list_for_each_entry_safe(port, p, &port_remove_lh, list) {
                list_for_each_entry_safe(unit, u, &unit_remove_lh, list) {
-                       if (atomic_read(&unit->status) &
-                           ZFCP_STATUS_UNIT_REGISTERED)
+                       if (unit->device)
                                scsi_remove_device(unit->device);
                        zfcp_unit_dequeue(unit);
                }
 
 /* logical unit status */
 #define ZFCP_STATUS_UNIT_SHARED                        0x00000004
 #define ZFCP_STATUS_UNIT_READONLY              0x00000008
-#define ZFCP_STATUS_UNIT_REGISTERED            0x00000010
 #define ZFCP_STATUS_UNIT_SCSI_WORK_PENDING     0x00000020
 
 /* FSF request status (this does not have a common part) */
 
        case ZFCP_ERP_ACTION_REOPEN_UNIT:
                if ((result == ZFCP_ERP_SUCCEEDED) &&
                    !unit->device && port->rport) {
-                       atomic_set_mask(ZFCP_STATUS_UNIT_REGISTERED,
-                                       &unit->status);
                        if (!(atomic_read(&unit->status) &
                              ZFCP_STATUS_UNIT_SCSI_WORK_PENDING))
                                zfcp_erp_schedule_work(unit);
 
 static void zfcp_scsi_slave_destroy(struct scsi_device *sdpnt)
 {
        struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata;
-       atomic_clear_mask(ZFCP_STATUS_UNIT_REGISTERED, &unit->status);
        unit->device = NULL;
        zfcp_erp_unit_failed(unit, 12, NULL);
        zfcp_unit_put(unit);
 
        read_lock_irqsave(&zfcp_data.config_lock, flags);
        unit = zfcp_unit_lookup(adapter, sdp->channel, sdp->id, sdp->lun);
-       if (unit &&
-           (atomic_read(&unit->status) & ZFCP_STATUS_UNIT_REGISTERED)) {
+       if (unit) {
                sdp->hostdata = unit;
                unit->device = sdp;
                zfcp_unit_get(unit);