On Thu, 20 Feb 2025 at 18:09, Corinna Vinschen via Cygwin
<cygwin@cygwin.com> wrote:
>
> On Feb 20 17:37, Lionel Cons via Cygwin wrote:
> > On Thu, 20 Feb 2025 at 14:56, Cedric Blancher via Cygwin
> > <cygwin@cygwin.com> wrote:
> > >
> > > Good afternoon!
> > >
> > > Cygwin 3.6.0-0.378.g78fb13d21f4f.x86_64, Cygwin coreutils package 9.6-1
> > >
> > > coreutils mkdir is broken on UNC paths:
> > >
> > > mkdir -p -- 
> > > "//ember.data4.local/afs/disk11/builds/bash/install_root/usr/local/bin"
> > > mkdir: cannot create directory ‘//ember.data4.local’: Read-only file 
> > > system
> > >
> > > This happens because you cannot do a "cd .." in
> > > //ember.data4.local/afs, because "afs" is the UNC prefix for that
> > > filesystem.
> >
> > No, it happens because mkdir "//ember.data4.local" returns "Read-only
> > file system". If Cygwin would just return EEXIST if this mount exists,
> > then this whole mkdir -p would work.
>
> You know exactly what Cygwin is doing wrong, great!

Sorry, it has been a very long day, and I did not communicate my point
precisely.
My point is that mkdir("//ember.data4.local") for a share should in my
opinion not return EROFS, because the share already exists.

Looking at the code:
int
fhandler_base::mkdir (mode_t)
{
 if (exists ())
   set_errno (EEXIST);
 else
   set_errno (EROFS);
 return -1;
}

My guess is that exists() fails. The why? and how? I do not know.

Maybe the hostname resolution in fhandler_netdrive::exists() failed?

Lionel

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

Reply via email to