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: Request for Junctions be treated consistently

On Apr  9 05:07, Linda Walsh wrote:
> Forgive me if this posts a 2nd time, but I haven't seen it come
> back after 6+ hours, so not sure where it went.
> Corinna Vinschen wrote:
> >
> >No, it's not.  There's a major difference between mount points and
> >symlinks, which is, mount points are handled inside the kernel, while
> >symlinks are filesystem objects.  Reparse points are very certainly
> >filesystem objects.  And bind mounts in Cygwin are handled in the
> >"kernel" as well.  We can't add reparse points to the mount table
> >on the fly.
> ---
> Windows Internals V5, p965
> [snip]

I know how reparse points work, but thanks all the same.

> Theoretically, there should be a cental resource that would enable you to know
> all the reparse points that are associated with mountpoints that wouldn't have
> to be added "on the fly", but could be added to /etc/fstab on cygwin-initialization.

I'm not sure how we came to discuss adding Windows mount points to
/etc/fstab, but either way, we don't want to do that.  It doesn't make
sense.  The Cygwin mount table provides a translation from Windows paths
to POSIX paths.  Adding the existing Windows device mounts doesn't add
any functionality.  Quite apart from the fact that Windows mount points
can change underneath Cygwin, so a fixed /etc/fstab containing Windows
device mounts is kind of moot anyway.

> But the one created with 'linkd' is called a Mount Point.

So because one Microsoft tool calls directory junctions "mount points",
they are mount points from a POSIX POV?

Again, we can't make the directory junctions POSIX mount points.  The
mount table is in memory and has a fixed, limited size.  The only choice
you have is to handle a directory junction as symlink or as plain
directory.  The latter is wrong since it's not a plain directory.  It's
just a file system object pointing to the real directory.  If you
handle it as directory, find and other recursive tools would enumerate
the directory twice, once via the real directory entry, once via the
reparse point.  And there would be no way at all from a POSIX POV to
distinguish the two.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgpSYxNPfjGGD.pgp
Description: PGP signature

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