On Fri, 6 Jun 2008, James Bottomley wrote: > On Fri, 2008-06-06 at 16:06 +0200, Geert Uytterhoeven wrote: > > When mounting a CD/DVD more than 30 seconds after inserting it, and reading > > from it, we get: > > > > attempt to access beyond end of device > > sr0: rw=0, want=371932, limit=371928 > > Buffer I/O error on device sr0, logical block 92982 > > attempt to access beyond end of device > > sr0: rw=0, want=371936, limit=371928 > > Buffer I/O error on device sr0, logical block 92983 > > attempt to access beyond end of device > > sr0: rw=0, want=371940, limit=371928 > > Buffer I/O error on device sr0, logical block 92984 > > attempt to access beyond end of device > > sr0: rw=0, want=371944, limit=371928 > > Buffer I/O error on device sr0, logical block 92985 > > attempt to access beyond end of device > > sr0: rw=0, want=371948, limit=371928 > > Buffer I/O error on device sr0, logical block 92986 > > ... > > > > It can be reproduced on a PS3 with busybox userland using: > > > > # Insert first CD > > $ mount /dev/sr0 /mnt > > $ ls -R /mnt > > $ umount /mnt > > $ eject > > # Remove first CD > > > > # Insert second CD > > # Wait at least 30 seconds > > $ mount /dev/sr0 /mnt > > $ tar cf /dev/null /mnt > > > > It does not happen when mounting the second CD within 30 seconds after > > inserting it, which is consistent with > > > > #define SR_TIMEOUT (30 * HZ) > > > > I can't seem to reproduce it with a Debian or Fedora Core 6 userland. > > > > The problem is present in 2.6.25. > > 2.6.24 is OK. > > Also, in the two different situations, what does > > cat /sys/block/sr0/size > > (assuming your cd is sr0) give you? My first theory is an incorrect > size propagating from something. Nice first theory! Initially /sys/block/sr0/size is 2097151. After inserting the first CD, and mounting it, /sys/block/sr0/size is changed to the size of the first CD (in 512 byte blocks). After ejecting the first CD and inserting the second CD, the behavior is like this: 1. when immediately mounting the CD, /sys/block/sr0/size is updated to the size of the second CD, 2. when waiting more than 30 seconds before mounting the CD, /sys/block/sr0/size is not updated, and keeps the old value. Surprisingly, it doesn't behave like this when inserting the first CD. /sys/block/sr0/size is always updated, whether I wait 30 seconds before mounting it or not. With kind regards, Geert Uytterhoeven Software Architect Sony Techsoft Centre The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium Phone: +32 (0)2 700 8453 Fax: +32 (0)2 700 8622 E-mail: Geert.Uytterhoeven@xxxxxxxxxxx Internet: http://www.sony-europe.com/ Sony Technology and Software Centre Europe A division of Sony Service Centre (Europe) N.V. Registered office: Technologielaan 7 · B-1840 Londerzeel · Belgium VAT BE 0413.825.160 · RPR Brussels Fortis 293-0376800-10 GEBA-BE-BB