@@ -171,7 +171,7 @@ func (m *deviceUtils) VerifyDevicePath(devicePaths []string, diskName string) (s
171
171
// device to get the device to show up in /dev/by-id/
172
172
innerErr := udevadmTriggerForDiskIfExists (diskName )
173
173
if innerErr != nil {
174
- return false , fmt .Errorf ("failed to trigger udevadm fix for disk %s : %v" , diskName , innerErr )
174
+ return false , fmt .Errorf ("failed to trigger udevadm fix: %v" , innerErr )
175
175
}
176
176
// Go to next retry loop to get the deviceName again after
177
177
// potentially fixing it with the udev command
@@ -199,7 +199,7 @@ func (m *deviceUtils) VerifyDevicePath(devicePaths []string, diskName string) (s
199
199
// The devicePath is not mapped to the correct disk
200
200
innerErr = udevadmTriggerForDiskIfExists (diskName )
201
201
if innerErr != nil {
202
- return false , fmt .Errorf ("failed to trigger udevadm fix for disk %s : %v" , diskName , innerErr )
202
+ return false , fmt .Errorf ("failed to trigger udevadm fix: %v" , innerErr )
203
203
}
204
204
// Go to next retry loop to get the deviceName again after
205
205
// potentially fixing it with the udev command
@@ -214,27 +214,30 @@ func (m *deviceUtils) VerifyDevicePath(devicePaths []string, diskName string) (s
214
214
}
215
215
216
216
func udevadmTriggerForDiskIfExists (diskName string ) error {
217
+ devToSCSI := map [string ]string {}
217
218
sds , err := filepath .Glob (diskSDPattern )
218
219
if err != nil {
219
220
return fmt .Errorf ("failed to filepath.Glob(\" %s\" ): %v" , diskSDPattern , err )
220
221
}
221
222
for _ , devSDX := range sds {
222
223
scsiSerial , err := getScsiSerial (devSDX )
223
224
if err != nil {
224
- return fmt .Errorf ("failed to get SCSI Serial num for %s : %v" , devSDX , err )
225
+ return fmt .Errorf ("failed to get SCSI Serial num: %v" , err )
225
226
}
227
+ devToSCSI [devSDX ] = scsiSerial
226
228
if scsiSerial == diskName {
227
229
// Found the disk that we're looking for so run a trigger on it
228
230
// to resolve its /dev/by-id/ path
229
231
klog .Warningf ("udevadm --trigger running to fix disk at path %s which has SCSI ID %s" , devSDX , scsiSerial )
230
232
err := udevadmChangeToDrive (devSDX )
231
233
if err != nil {
232
- return fmt .Errorf ("failed to fix disk at path %s which has SCSI ID %s: %v" , devSDX , scsiSerial , err )
234
+ return fmt .Errorf ("failed to fix disk which has SCSI ID %s: %v" , scsiSerial , err )
233
235
}
234
236
return nil
235
237
}
236
238
}
237
- return fmt .Errorf ("udevadm --trigger requested to fix disk %s but no such disk was found in %v" , diskName , sds )
239
+ klog .Warningf ("udevadm --trigger requested to fix disk %s but no such disk was found in %v" , diskName , devToSCSI )
240
+ return fmt .Errorf ("udevadm --trigger requested to fix disk %s but no such disk was found" , diskName )
238
241
}
239
242
240
243
// Calls "udevadm trigger --action=change" on the specified drive. drivePath
0 commit comments