Module Name: src Committed By: riastradh Date: Mon Mar 28 12:37:09 UTC 2022
Modified Files: src/sys/miscfs/specfs: spec_vnops.c specdev.h Log Message: specfs: Prevent new opens while close is waiting to drain. Otherwise, bdev/cdev_close could have cancelled all _existing_ opens, and waited for them to complete (and freed resources used by them) -- but a new one could start, and hang (e.g., a tty), at the same time spec_close tries to drain all pending I/O operations, one of which (the new open) is now hanging indefinitely. Preventing the new open from even starting until bdev/cdev_close is finished and all I/O operations have drained avoids this deadlock. To generate a diff of this commit: cvs rdiff -u -r1.203 -r1.204 src/sys/miscfs/specfs/spec_vnops.c cvs rdiff -u -r1.49 -r1.50 src/sys/miscfs/specfs/specdev.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.