On 2020-06-17 11:49, Simon Arlott wrote:
> @@ -3576,9 +3582,19 @@ static void sd_shutdown(struct device *dev)
>               sd_sync_cache(sdkp, NULL);
>       }
>  
> -     if (system_state != SYSTEM_RESTART && sdkp->device->manage_start_stop) {
> -             sd_printk(KERN_NOTICE, sdkp, "Stopping disk\n");
> -             sd_start_stop_device(sdkp, 0);
> +     if (sdkp->device->manage_start_stop) {
> +             bool stop_disk = (system_state != SYSTEM_RESTART);
> +
> +             if (stop_before_reboot > 1) { /* stop all disks */
> +                     stop_disk = true;
> +             } else if (stop_before_reboot) { /* non-rotational only */
> +                     stop_disk |= blk_queue_nonrot(sdkp->disk->queue);
> +             }
> +
> +             if (stop_disk) {
> +                     sd_printk(KERN_NOTICE, sdkp, "Stopping disk\n");
> +                     sd_start_stop_device(sdkp, 0);
> +             }
>       }
>  }

Is introduction of a new kernel module parameter essential? Or in other
words, has it been considered to apply the new behavior to all SSDs?

Thanks,

Bart.

Reply via email to