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: mount never fails ... sorta

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:

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