mount never fails ... sorta

Larry Hall (Cygwin)
Mon Jun 12 00:41:00 GMT 2006

Richard Foulk wrote:
>> Richard Foulk wrote:
>>> Give mount(1) nonexistent hosts or directories and it will complain,
>>> but it still populates the mount table as if it succeeded.
>>> It also always returns zero, for success or failure.
>> Cygwin's mount is a different bird than on Unix.  It really is just a mapping
>> table of POSIX names to DOS or UNC-style paths.  It is not required that the
>> POSIX path exist for things to work.  But since most people coming from a UNIX
>> background expect that it does and it certainly helps things like shell
>> path completion if the paths do already exist, you get a warning to let you
>> know about this difference.
> I guess I should have said mount's behavior is wrong and broken.
> It knows when there's an error it just does the wrong things.
> 	1. mount reports the error to stderr, but not via the return code.

Well, if you feel strongly about this, then PTC.  If there's going to be
much worthwhile debate on this issue, giving the specifics of your
proposal via a patch makes it easy for people to provide specific

> 	2. mount knows about the error but signals success anyway -- by
> 	   listing a (non-existent) mount within the mount table.

You say error now.  Before you called it as it's reported, a warning.  Seems
you're escalating things here without much cause.

'mount' lists the entry in the mount table because it is not *required* that
the target or the source exist at the time the entry is created for the mount
point to be valid.  The target *never* has to exist in the file system for the
mount point to work.  The source only needs to exist when the target path is
being used.  And at that point you get a very valid error if the target is
still not accessible - "No such file or directory".

> Sure Cygwin's mount is different than Unix's.  That's what Cygwin is all
> about, hiding those differences.  Cygwin's mount fails at that.

Cygwin's 'mount' has *no* functional overlap with Unix's, for better or worse.
If you expect Cygwin's 'mount' to do what the Unix 'mount' does, then you're
going to be very disappointed.  The semantics are completely different.  If
you want to argue that Cygwin's 'mount' and 'umount' commands should be called
something else because of this difference, that's reasonable (though not very
likely to happen given it's historical usage in the Cygwin environment and the
lack of file system drivers in Cygwin to support "real" mounting).  But that's
not a basis on which to claim that Cygwin's 'mount' is broken.

> Registering a mount that doesn't exist is quite broken.

Have you tried it?  It works just as I've described.  Something that works
can't really be termed "broken".

Larry Hall                    
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
838 Washington Street                   (508) 893-9889 - FAX
Holliston, MA 01746

Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list