Commit 07dde72f authored by Don Brace's avatar Don Brace Committed by Martin K. Petersen
Browse files

scsi: smartpqi: fix volume size updates



Correct logical volume size changes by moving the check for a volume rescan
outside of the check for a queue depth change.

Signed-off-by: default avatarDon Brace <don.brace@microchip.com>
Link: https://lore.kernel.org/r/20240827185501.692804-7-don.brace@microchip.com


Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 4e0a5171
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -2303,10 +2303,17 @@ static void pqi_update_device_list(struct pqi_ctrl_info *ctrl_info,
	 * queue depth, device size.
	 */
	list_for_each_entry(device, &ctrl_info->scsi_device_list, scsi_device_list_entry) {
		/*
		 * Check for queue depth change.
		 */
		if (device->sdev && device->queue_depth != device->advertised_queue_depth) {
			device->advertised_queue_depth = device->queue_depth;
			scsi_change_queue_depth(device->sdev, device->advertised_queue_depth);
		}
		spin_lock_irqsave(&ctrl_info->scsi_device_list_lock, flags);
		/*
		 * Check for changes in the device, such as size.
		 */
		if (pqi_volume_rescan_needed(device)) {
			device->rescan = false;
			spin_unlock_irqrestore(&ctrl_info->scsi_device_list_lock, flags);
@@ -2315,7 +2322,6 @@ static void pqi_update_device_list(struct pqi_ctrl_info *ctrl_info,
			spin_unlock_irqrestore(&ctrl_info->scsi_device_list_lock, flags);
		}
	}
	}

	/* Expose any new devices. */
	list_for_each_entry_safe(device, next, &add_list, add_list_entry) {