libata: remove spindown skipping and warning
authorTejun Heo <tj@kernel.org>
Fri, 3 Jul 2009 02:46:12 +0000 (11:46 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 1 Sep 2009 23:47:20 +0000 (19:47 -0400)
This was a hack to give userland shutdown tools time to drop manual
spindown.  All popular distros updated quite some time ago and the due
is well passed.  Drop it.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Jaswinder Singh Rajput <jaswinder@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Documentation/feature-removal-schedule.txt
drivers/ata/libata-scsi.c
include/linux/libata.h

index 09e031c558875139c72874b1ab78f322ed34d25f..b3b62903f08c1acaaab100dc2b34eebd0b08f17c 100644 (file)
@@ -206,24 +206,6 @@ Who:       Len Brown <len.brown@intel.com>
 
 ---------------------------
 
-What: libata spindown skipping and warning
-When: Dec 2008
-Why:  Some halt(8) implementations synchronize caches for and spin
-      down libata disks because libata didn't use to spin down disk on
-      system halt (only synchronized caches).
-      Spin down on system halt is now implemented.  sysfs node
-      /sys/class/scsi_disk/h:c:i:l/manage_start_stop is present if
-      spin down support is available.
-      Because issuing spin down command to an already spun down disk
-      makes some disks spin up just to spin down again, libata tracks
-      device spindown status to skip the extra spindown command and
-      warn about it.
-      This is to give userspace tools the time to get updated and will
-      be removed after userspace is reasonably updated.
-Who:  Tejun Heo <htejun@gmail.com>
-
----------------------------
-
 What:  i386/x86_64 bzImage symlinks
 When:  April 2010
 
index d0dfeef55db58444d5eeb979ab97f1e1628112c8..de3a0050760af9ea23f8673b03c3fe3caf24fa37 100644 (file)
@@ -1257,23 +1257,6 @@ int ata_scsi_change_queue_depth(struct scsi_device *sdev, int queue_depth)
        return queue_depth;
 }
 
-/* XXX: for spindown warning */
-static void ata_delayed_done_timerfn(unsigned long arg)
-{
-       struct scsi_cmnd *scmd = (void *)arg;
-
-       scmd->scsi_done(scmd);
-}
-
-/* XXX: for spindown warning */
-static void ata_delayed_done(struct scsi_cmnd *scmd)
-{
-       static struct timer_list timer;
-
-       setup_timer(&timer, ata_delayed_done_timerfn, (unsigned long)scmd);
-       mod_timer(&timer, jiffies + 5 * HZ);
-}
-
 /**
  *     ata_scsi_start_stop_xlat - Translate SCSI START STOP UNIT command
  *     @qc: Storage for translated ATA taskfile
@@ -1338,32 +1321,6 @@ static unsigned int ata_scsi_start_stop_xlat(struct ata_queued_cmd *qc)
                     system_entering_hibernation())
                        goto skip;
 
-               /* XXX: This is for backward compatibility, will be
-                * removed.  Read Documentation/feature-removal-schedule.txt
-                * for more info.
-                */
-               if ((qc->dev->flags & ATA_DFLAG_SPUNDOWN) &&
-                   (system_state == SYSTEM_HALT ||
-                    system_state == SYSTEM_POWER_OFF)) {
-                       static unsigned long warned;
-
-                       if (!test_and_set_bit(0, &warned)) {
-                               ata_dev_printk(qc->dev, KERN_WARNING,
-                                       "DISK MIGHT NOT BE SPUN DOWN PROPERLY. "
-                                       "UPDATE SHUTDOWN UTILITY\n");
-                               ata_dev_printk(qc->dev, KERN_WARNING,
-                                       "For more info, visit "
-                                       "http://linux-ata.org/shutdown.html\n");
-
-                               /* ->scsi_done is not used, use it for
-                                * delayed completion.
-                                */
-                               scmd->scsi_done = qc->scsidone;
-                               qc->scsidone = ata_delayed_done;
-                       }
-                       goto skip;
-               }
-
                /* Issue ATA STANDBY IMMEDIATE command */
                tf->command = ATA_CMD_STANDBYNOW1;
        }
@@ -1764,14 +1721,6 @@ static void ata_scsi_qc_complete(struct ata_queued_cmd *qc)
                }
        }
 
-       /* XXX: track spindown state for spindown skipping and warning */
-       if (unlikely(qc->tf.command == ATA_CMD_STANDBY ||
-                    qc->tf.command == ATA_CMD_STANDBYNOW1))
-               qc->dev->flags |= ATA_DFLAG_SPUNDOWN;
-       else if (likely(system_state != SYSTEM_HALT &&
-                       system_state != SYSTEM_POWER_OFF))
-               qc->dev->flags &= ~ATA_DFLAG_SPUNDOWN;
-
        if (need_sense && !ap->ops->error_handler)
                ata_dump_status(ap->print_id, &qc->result_tf);
 
index d3f7cab4873e50d354f183d3554713f4ed66dc3b..76319bf03e373b89719d00feb0cbfcd3bbeaf293 100644 (file)
@@ -143,7 +143,6 @@ enum {
 
        ATA_DFLAG_PIO           = (1 << 12), /* device limited to PIO mode */
        ATA_DFLAG_NCQ_OFF       = (1 << 13), /* device limited to non-NCQ mode */
-       ATA_DFLAG_SPUNDOWN      = (1 << 14), /* XXX: for spindown_compat */
        ATA_DFLAG_SLEEPING      = (1 << 15), /* device is sleeping */
        ATA_DFLAG_DUBIOUS_XFER  = (1 << 16), /* data transfer not verified */
        ATA_DFLAG_NO_UNLOAD     = (1 << 17), /* device doesn't support unload */