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: Treating Junctions consistently, as "normal dirs" as w/linux "bind"-type mount


Corinna Vinschen wrote:
He's right. The mount point handling in Cygwin is based on the
in-memory mount table.
----
   I'm not wanting a mount point fake.  Just wanting it to look
like a normal dir just like the mountvol-junctions.

There's no reasonable way to fake some
reparse point to look like a mount point.  We can either handle it
as normal dir, or as symlink. Handling it as normal dir is problematic in terms of find/rsync
----
   T All of the core utils are loop-protected in that respect.
same-dev file systems already exist on linux and cygwin.

   File system loops are already present just using mountvol:

 mountvol
...
\\?\Volume{578b2172-f917-11e4-b3d9-a0369f15ce28}\
       C:\mountedVol\
/mountedVol> mkdir remounted

# note, next "2" lines are really 1 wrapped line:

/mountedVol> mountvol remounted '\\?\Volume{578b2172-f917-11e4-b3d9-a0369f15ce28}\'


So the same volume is mounted at C:\mountedVol and at
C:\mountedVol\remounted.
 etc, bacause the cross-device
check would fail and files are potentially visited multiple times.
----
That isn't what happens right now with mountvol:

find shows:

/> find mountedVol/ -type d
mountedVol/
mountedVol/$RECYCLE.BIN
mountedVol/$RECYCLE.BIN/S-1-5-21-1885695451-752926663-1105222378-1000
mountedVol/$RECYCLE.BIN/S-1-5-21-1885695451-752926663-1105222378-1025
mountedVol/$RECYCLE.BIN/S-1-5-21-1885695451-752926663-1105222378-500
mountedVol/$RECYCLE.BIN/S-1-5-21-33333-77777-33333-5013
find: File system loop detected; ‘mountedVol/remounted’ is part of the same file system loop as ‘mountedVol/’.
mountedVol/System Volume Information

I.e. 'find' (and other coreutils) detect the loop even though
they are the same file system.

Sure, you can find program(s) that are broken and don't detect
such loops, but at least the core utils do check -- and besides,
no one HAS to create junctions -- they can use symlinks as they do
today and no risk of such problems.

But treating linkd-junctions the same as mountvol-junctions allows
those bind-style mounts that are supported on linux and Windows
to be supported on Cygwin.


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


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