Module Name: src Committed By: jdolecek Date: Fri Aug 10 22:43:22 UTC 2018
Modified Files: src/sys/dev/ata: ata_subr.c atavar.h wd.c Log Message: fix race in wd_lastclose() on systems with two ide disks on same channel, which happened when one disk had pending I/O while the other disk executed the final disk flush - need to restart bufq processing once xfer is freed in this case it could happen e.g. on boot when system executes fsck on different partitions on the two drives in parallell and hence open and closes the disk devices repeatedly add KASSERT() for empty bufq on wd_lastclose(), and fix similar issue also on suspend/standby path this was introduced by the NCQ merge and not dksubr - before the merge each drive had their own xfer, so they could not block each other fixes PR kern/52783 by Onno van der Linden; many thanks for extensive help with tracking this down To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/dev/ata/ata_subr.c cvs rdiff -u -r1.98 -r1.99 src/sys/dev/ata/atavar.h cvs rdiff -u -r1.440 -r1.441 src/sys/dev/ata/wd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.