diff options
author | Hannes Reinecke <hare@suse.de> | 2015-11-09 07:24:28 -0500 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2015-11-30 11:23:45 -0500 |
commit | 09e2b0b14690fb13ccfc04af49f156df3e25b152 (patch) | |
tree | 4643ba86b1896df0b6a119416f31db4d4da0851b /include/scsi | |
parent | fe0798c5e150be8f06959250076d3864477e74c2 (diff) |
scsi: rescan VPD attributes
The VPD page information might change, so we need to be able to update
it. This patch implements a VPD page rescan whenever the 'rescan' sysfs
attribute is triggered.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Shane Seymour <shane.seymour@hpe.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/scsi_device.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index fe89d7cd67b9..bde4077f2864 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h | |||
@@ -109,6 +109,7 @@ struct scsi_device { | |||
109 | char type; | 109 | char type; |
110 | char scsi_level; | 110 | char scsi_level; |
111 | char inq_periph_qual; /* PQ from INQUIRY data */ | 111 | char inq_periph_qual; /* PQ from INQUIRY data */ |
112 | struct mutex inquiry_mutex; | ||
112 | unsigned char inquiry_len; /* valid bytes in 'inquiry' */ | 113 | unsigned char inquiry_len; /* valid bytes in 'inquiry' */ |
113 | unsigned char * inquiry; /* INQUIRY response data */ | 114 | unsigned char * inquiry; /* INQUIRY response data */ |
114 | const char * vendor; /* [back_compat] point into 'inquiry' ... */ | 115 | const char * vendor; /* [back_compat] point into 'inquiry' ... */ |
@@ -117,9 +118,9 @@ struct scsi_device { | |||
117 | 118 | ||
118 | #define SCSI_VPD_PG_LEN 255 | 119 | #define SCSI_VPD_PG_LEN 255 |
119 | int vpd_pg83_len; | 120 | int vpd_pg83_len; |
120 | unsigned char *vpd_pg83; | 121 | unsigned char __rcu *vpd_pg83; |
121 | int vpd_pg80_len; | 122 | int vpd_pg80_len; |
122 | unsigned char *vpd_pg80; | 123 | unsigned char __rcu *vpd_pg80; |
123 | unsigned char current_tag; /* current tag */ | 124 | unsigned char current_tag; /* current tag */ |
124 | struct scsi_target *sdev_target; /* used only for single_lun */ | 125 | struct scsi_target *sdev_target; /* used only for single_lun */ |
125 | 126 | ||