This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bug: Setup tool doesn't respect managed mountpoints/filesystems


On Mon, Sep 19, 2005 at 03:10:52PM -0400, Igor Pechtchanski wrote:
>On Mon, 19 Sep 2005, Brian Dessent wrote:
>
>> Igor Pechtchanski wrote:
>>
>> > OTOH, one of the changes that would be worth making in the managed mount
>> > code is to leave the filename alone unless there's a clash, in which case
>> > the clashing filename becomes encoded.
>>
>> But then any file creation/renaming operation would have to check and
>> see if there was a clash first.  That would kill performance.  It would
>> also create race conditions, like two processes trying to create
>> clashing files at the same time.
>
>Yes, there are issues to work out here, but they are not very different
>from, say, those arising when two programs try creating a file with the
>same name simultaneously...  In fact, the case-insensitivity of both NTFS
>and VFAT plays into our hands here, as you say below: creating a new file
>that differs only in case will always fail, so Cygwin simply has to encode
>the file name if its creation failed.
>
>> > This should work since both NTFS and FAT are case-preserving
>> > filesystems (of course, Cygwin will have to
>>
>> Preserving, yes, but not sensitive.  As far as I know it is impossible
>> to make (V)FAT case sensitive, so creating a new file that differs only
>> in case will always fail.  NTFS is only case sensitive if you use the
>> Native API, otherwise it is not case sensitive either.  I seem to
>> remember a paragraph on MSDN that states this.
>>
>> Even if Cygwin did use the Native API, this would only work for NT with
>> NTFS volumes.  9x/ME has no way to do this, so you're back to encoding
>> filenames anyway.
>
>How is this relevant?  I didn't say we don't need to encode filenames -- I
>said that we only need to encode filenames *if* there is a clash (or the
>name is special).  If there is no clash, a file like "README" should be
>stored as-is.
>
>The only caveat I see here is that now *accesses* to files on managed
>mounts would have to check for case -- i.e., the managed mount code would
>need to replicate some of the "check_case:strict" logic.  Otherwise,
>creating "README" and accessing it as "readme" would work (which we don't
>want to happen).

I've been contemplating some changes to managed mode for a while now but
I think I want to finally implement my mount table rewrite before I do
anything to managed mode.  I will probalby start working on the mount
table stuff in a branch after 1.5.19 is released.

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]