On Tue, 2003-01-28 at 04:23, Borzenkov Andrey wrote: > Nope, it is just an accidental side effect. Put_inode (as it was) is buggy > and not needed. > > ESTALE was my fault, I did not expect that the same superblock is reused on > remount with busy files. The attached patch plugs the hole (reinitialize > s_media_changed) until I find a proper fix. > > Also patch does > > - "mode" parameter was forgotten for ext2 > > - move setting of s_media_changed to where it belongs - check_disk_change > > - add MS_SUPERMOUNTED flag for future use > > - use MS_SUPERMOUNTED to properly respect reference count on CD eject > instead of blindly disabling it > > - "self destroying" message is back, it is fixed for supermount and we > should not hide errors for other cases. > > > >> Now I am able to eject the cd in the middle of one > > >> operation, insert again the cd, and the operation continues > > >> with only some I/O Errors (as expected). > > > > Please, test it with this patch. Your version gives "no such file or > directory" error again :( > > > That now it never shows -ESTALE errors :p > > > > It still does with my patch in one case: > > cd /mnt/cdrom/foo > eject > ls /mnt/cdrom > > will show /mnt/cdrom/foo as ESTALE. It is because d_invalidate never > invalidates busy directory. I think I know how to fix it. > > TODO > > - really fix ejecting with busy files > - fix the last case of improper ESTALE > - some more vague ideas > > cheers > > -andrey
The real test for supermount will be when you can successfully install a copy protected game under WineX; like Baldur's Gate 2, for instance. That's going to be my acid test. LX -- ��������������������������������������������������� Kernel 2.4.18-6mdk Mandrake Linux 8.2 Enlightenment 0.16.5-11mdk Evolution 1.0.2-5mdk Registered Linux User #268899 http://counter.li.org/ ���������������������������������������������������
