diff --git a/[refs] b/[refs] index 895b98cae06a..5770a8b10201 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 286405167e815adc4ae0132214246a350b0208bc +refs/heads/master: 54f57588463db1105f4a93b2902a6f95cb8f796a diff --git a/trunk/drivers/scsi/sd.c b/trunk/drivers/scsi/sd.c index fa3a5918009c..7b3f8075e2a5 100644 --- a/trunk/drivers/scsi/sd.c +++ b/trunk/drivers/scsi/sd.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #include @@ -2741,6 +2742,9 @@ static void sd_shutdown(struct device *dev) if (!sdkp) return; /* this can happen */ + if (pm_runtime_suspended(dev)) + goto exit; + if (sdkp->WCE) { sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n"); sd_sync_cache(sdkp); @@ -2751,6 +2755,7 @@ static void sd_shutdown(struct device *dev) sd_start_stop_device(sdkp, 0); } +exit: scsi_disk_put(sdkp); }