Any bystander here who knows how to refresh the i/o cache of /dev/sr0 ? Best without the need to be superuser. :))
A quick look at the generic CD-ROM layer code in 2.6.24 suggests that issuing an ioctl with a code of CDROMRESET may very well do the job. This code path calls invalidate_bdev() on the device, and then calls the drive-specific reset routine. You could also try an ioctl with a code of BLKFLSBUF, which appears to do an fsync_bdev() followed by invalidate_bdev(). This one is checking for capable(CAP_SYS_ADMIN) and so might require superuser privileges and then some.