diff options
author | Lukas Prediger | 2021-09-14 00:09:42 +0100 |
---|---|---|
committer | Jens Axboe | 2021-09-14 20:05:26 -0600 |
commit | 67f1e027c27054e641584655020a417eaac9cb3a (patch) | |
tree | cd436e8c697009cc6def17e4b77cd28503029ac3 /sound/usb | |
parent | 316346243be6df12799c0b64b788e06bad97c30b (diff) |
drivers/cdrom: improved ioctl for media change detection
The current implementation of the CDROM_MEDIA_CHANGED ioctl relies on
global state, meaning that only one process can detect a disc change
while the ioctl call will return 0 for other calling processes afterwards
(see bug 213267).
This introduces a new cdrom ioctl, CDROM_TIMED_MEDIA_CHANGE, that
works by maintaining a timestamp of the last detected disc change instead
of a boolean flag: Processes calling this ioctl command can provide
a timestamp of the last disc change known to them and receive
an indication whether the disc was changed since then and the updated
timestamp.
I considered fixing the buggy behavior in the original
CDROM_MEDIA_CHANGED ioctl but that would require maintaining state
for each calling process in the kernel, which seems like a worse
solution than introducing this new ioctl.
Signed-off-by: Lukas Prediger <lumip@lumip.de>
Link: https://lore.kernel.org/all/20210912191207.74449-1-lumip@lumip.de
Signed-off-by: Phillip Potter <phil@philpotter.co.uk>
Link: https://lore.kernel.org/r/20210913230942.1188-1-phil@philpotter.co.uk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'sound/usb')
0 files changed, 0 insertions, 0 deletions