I have a small hope this patch is correct (compile tested). At least, the code
was not correct before this patch. "Cancel and flush" should do "Cancel", and
then "flush".
Signed-off-by: Oleg Nesterov <[email protected]>
--- WQ/drivers/ata/libata-core.c~4_ata 2007-02-18 22:56:47.000000000 +0300
+++ WQ/drivers/ata/libata-core.c 2007-02-19 02:02:06.000000000 +0300
@@ -1071,8 +1071,6 @@ void ata_port_flush_task(struct ata_port
spin_unlock_irqrestore(ap->lock, flags);
DPRINTK("flush #1\n");
- cancel_work_sync(&ap->port_task.work); /* akpm: seems unneeded */
-
/*
* At this point, if a task is running, it's guaranteed to see
* the FLUSH flag; thus, it will never queue pio tasks again.
@@ -1082,8 +1080,8 @@ void ata_port_flush_task(struct ata_port
if (ata_msg_ctl(ap))
ata_port_printk(ap, KERN_DEBUG, "%s: flush #2\n",
__FUNCTION__);
- cancel_work_sync(&ap->port_task.work);
}
+ cancel_work_sync(&ap->port_task.work);
spin_lock_irqsave(ap->lock, flags);
ap->pflags &= ~ATA_PFLAG_FLUSH_PORT_TASK;
@@ -5889,7 +5887,6 @@ void ata_port_detach(struct ata_port *ap
/* Flush hotplug task. The sequence is similar to
* ata_port_flush_task().
*/
- cancel_work_sync(&ap->hotplug_task.work); /* akpm: why? */
cancel_delayed_work(&ap->hotplug_task);
cancel_work_sync(&ap->hotplug_task.work);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]