Commit f864a703 authored by Arjan van de Ven's avatar Arjan van de Ven Committed by Linus Torvalds

[PATCH] IDE disk cache flush at unopportune momemnts

This makes the idedisk_release function only flush the cache on final
release; with the recent 2.6 blocklayer updates release gets called
somewhat frequently, and at times where IO is outstanding to the disk.

This bug didn't trigger before simply because ide_cacheflush_p() always
was a nop.
parent ef81b155
...@@ -1779,7 +1779,8 @@ static int ide_cacheflush_p(ide_drive_t *drive) ...@@ -1779,7 +1779,8 @@ static int ide_cacheflush_p(ide_drive_t *drive)
static int idedisk_release(struct inode *inode, struct file *filp) static int idedisk_release(struct inode *inode, struct file *filp)
{ {
ide_drive_t *drive = inode->i_bdev->bd_disk->private_data; ide_drive_t *drive = inode->i_bdev->bd_disk->private_data;
ide_cacheflush_p(drive); if (drive->usage == 1)
ide_cacheflush_p(drive);
if (drive->removable && drive->usage == 1) { if (drive->removable && drive->usage == 1) {
ide_task_t args; ide_task_t args;
memset(&args, 0, sizeof(ide_task_t)); memset(&args, 0, sizeof(ide_task_t));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment