[regression-3.6] coreutils mkdir broken on UNC paths
Lionel Cons
lionelcons1972@gmail.com
Thu Feb 20 18:24:55 GMT 2025
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
More information about the Cygwin
mailing list