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: mkdir -p and network drives

On Thu, 5 May 2005, Dave Korn wrote:

> ----Original Message----
> >From: Igor Pechtchanski
> >Sent: 05 May 2005 18:20
> > On Thu, 5 May 2005, Paul Eggert wrote:
> >
> >> Eric Blake <ebb9@XXX.XXX> writes:
> >>
> >>> //MACHINE currently generates ENOENT, whether or not there is a
> >>> server on the network with that name, and mkdir(2), stat(2), and
> >>> chdir(2) with an argument of "//MACHINE" fail.
> >>
> >> That's certainly a hassle.  Let's not worry about going through
> >> zillions of lines of application code working around that
> >> incompatibility.  Let's get Cygwin fixed instead.
> >
> > One potential problem is that on Windows, using NetShareEnum when checking
> > the path will mean that every time someone does "mkdir -p", the command
> > will have to wait until all network shares are examined.  This could
> > result in quite a bit of a delay, to say the least...
>   Um, I don't see why.  You only need to check network shares at all when
> you have "//" at the start of the command line.

Umm, yes, of course, I meant "for the cases when doing 'mkdir -p' on a
network share".

> I can't see any reason why you'd want to check shares on any machine
> other than //MACHINE either, and in fact I can't see why you'd care
> about checking any share on //MACHINE other than the one specified after
> '//MACHINE/' in the command line.  Could you perhaps expond on that
> statement a bit?

Well, CGF summarized this nicely -- mkdir -p checks '//', then
'//MACHINE', and only then '//MACHINE/Share'.  Usually, if
'//MACHINE/Share' is "net use"d, the fact of its existence and
accessibility is cached.  If we added the semantics for accessing '//' and
'//MACHINE' as was suggested earlier in the thread, then '//' would try to
list all machines on the network, '//MACHINE' would try to access all
shares on a particular machine (not necessarily a fast operation), and
only then would mkdir get to '//MACHINE/Share' that is cached.

There's always Pierre's solution of doing minimal support for stat()ing
'//' and '//MACHINE', though...
      |\      _,,,---,,_
ZZZzz /,`.-'`'    -.  ;-;;,_
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"The Sun will pass between the Earth and the Moon tonight for a total
Lunar eclipse..." -- WCBS Radio Newsbrief, Oct 27 2004, 12:01 pm EDT

Unsubscribe info:
Problem reports:

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