diff options
Diffstat (limited to 'include/scsi/libsas.h')
| -rw-r--r-- | include/scsi/libsas.h | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index d792b13cfcf..bd6e89ece2a 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h @@ -86,7 +86,9 @@ enum discover_event {  	DISCE_DISCOVER_DOMAIN   = 0U,  	DISCE_REVALIDATE_DOMAIN = 1,  	DISCE_PORT_GONE         = 2, -	DISC_NUM_EVENTS 	= 3, +	DISCE_PROBE		= 3, +	DISCE_DESTRUCT		= 4, +	DISC_NUM_EVENTS		= 5,  };  /* ---------- Expander Devices ---------- */ @@ -175,6 +177,7 @@ struct sata_device {  enum {  	SAS_DEV_GONE, +	SAS_DEV_DESTROY,  };  struct domain_device { @@ -191,6 +194,7 @@ struct domain_device {          struct asd_sas_port *port;        /* shortcut to root of the tree */          struct list_head dev_list_node; +	struct list_head disco_list_node; /* awaiting probe or destruct */          enum sas_protocol    iproto;          enum sas_protocol    tproto; @@ -226,7 +230,6 @@ struct sas_discovery {  	int    max_level;  }; -  /* The port struct is Class:RW, driver:RO */  struct asd_sas_port {  /* private: */ @@ -236,6 +239,8 @@ struct asd_sas_port {  	struct domain_device *port_dev;  	spinlock_t dev_list_lock;  	struct list_head dev_list; +	struct list_head disco_list; +	struct list_head destroy_list;  	enum   sas_linkrate linkrate;  	struct sas_phy *phy; @@ -334,6 +339,7 @@ struct sas_ha_event {  enum sas_ha_state {  	SAS_HA_REGISTERED,  	SAS_HA_DRAINING, +	SAS_HA_ATA_EH_ACTIVE,  };  struct sas_ha_struct { @@ -346,6 +352,8 @@ struct sas_ha_struct {  	unsigned long	  state;  	spinlock_t 	  state_lock; +	struct mutex disco_mutex; +  	struct scsi_core core;  /* public: */  |