Re: Need help tracing regular write activity in 5 s interval

Padraig Brady
2002-06-05T14:09:09Z

I'm sure it will :-)

However this it just masking the "problem", and I don't
think it's "buggy CDROM drives" as I've tried 3 different
machines with the following drives:

SAMSUNG DVD-ROM SD-612
TOSHIBA DVD-ROM SD-C2402
CREATIVE CD5233E

and they all show the same problem. I.E. logs filling with
"VFS: Disk change detected on device ide1(22,0)".

magicdev essentially does:

while (1) {
cd = open ("/dev/cdrom", O_RDONLY|O_NONBLOCK);
if (ioctl (cd, CDROM_DRIVE_STATUS, CDSL_CURRENT) == CDS_DISC_OK) {
/* do stuff */
}
close(cd);
sleep(2);
}

Note, it's the open() that causes the check_media_changed(),
so why does this always return true? Is there a way you
can turn it it off? echoing [01] to /proc/sys/dev/cdrom/check_media
made no difference.

Also related, why does the LED flash on every ATA command?
Is this controlled by the drive or ide controller?
Are you telling me that windows would flash the LED every so often
to automount CDs?

thanks,
Padraig.

Erik Andersen wrote:
> On Tue Jun 04, 2002 at 12:21:20PM +0100, Padraig Brady wrote:
>
>>As an aside, Nautilus (1.0.4) does stuff every 2 seconds
>>(checking is there a CD inserted) that causes the disk LED to flash.
>>The same action also causes the kernel (2.4.13) to fill up the ring
>>buffer with: "VFS: Disk change detected on device ide1(22,0)".
>
>
> This should fix the symptom...
>
> --- linux/fs/block_dev.c.orig Tue Jun 4 06:03:44 2002
> +++ linux/fs/block_dev.c Tue Jun 4 06:03:44 2002
> @@ -582,8 +582,11 @@
> if (!bdops->check_media_change(dev))
> return 0;
>
> + #if 0
> + /* Polling buggy CD-ROM drives can fill the logs. Make it shutup. */
> printk(KERN_DEBUG "VFS: Disk change detected on device %s\n",
> bdevname(dev));
> + #endif
>
> sb = get_super(dev);
> if (sb && invalidate_inodes(sb))
> -Erik
>
> --
> Erik B. Andersen http://codepoet-consulting.com/
> --This message was written using 73% post-consumer electrons--