lkml.org 
[lkml]   [2004]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Force IDE cache flush on shutdown
On Thu, May 06, 2004 at 11:52:20AM +0100, Christoph Hellwig wrote:
> > + idedisk_driver.gen_driver.shutdown = ide_drive_shutdown;
>
> isn't idedisk_driver initialized statically somewhere? You should probably

ok ok you win

diff -purN linux-2.6.5/drivers/ide/ide-disk.c linux/drivers/ide/ide-disk.c
--- linux-2.6.5/drivers/ide/ide-disk.c 2004-05-06 13:26:53.350284720 +0200
+++ linux/drivers/ide/ide-disk.c 2004-05-06 13:32:01.322465832 +0200
@@ -1725,6 +1725,9 @@ static ide_driver_t idedisk_driver = {
.drives = LIST_HEAD_INIT(idedisk_driver.drives),
.start_power_step = idedisk_start_power_step,
.complete_power_step = idedisk_complete_power_step,
+ .gen_driver = {
+ .shutdown = ide_drive_shutdown,
+ },
};

@@ -1820,6 +1823,23 @@ static int idedisk_revalidate_disk(struc
return 0;
}

+static int ide_drive_shutdown(struct device * dev)
+{
+ ide_drive_t * drive = container_of(dev,ide_drive_t,gendev);
+
+ /* safety checks */
+ if (!drive->present)
+ return 0;
+ if (drive->media != ide_disk)
+ return 0;
+ printk("Flushing cache: %s \n", drive->name);
+ ide_cacheflush_p(drive);
+ /* give the hardware time to finish; it may return prematurely to cheat */
+ mdelay(300);
+ return 0;
+}
+
+
static struct block_device_operations idedisk_ops = {
.owner = THIS_MODULE,
.open = idedisk_open,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 14:02    [W:0.098 / U:0.624 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site