Re: [PATCH RESEND 07/11] cifs: Check if server supports EAs before trying to set it for WSL
From: Pali Rohár
Date: Mon Jul 06 2026 - 18:58:28 EST
It is not working even without this my patch.
mknod_wsl() is already setting the EAs and at the later stage,
mknod_wsl() will report an error if the EAs cannot be set. In EA is
present also the type of special file, and it is done for all types.
So this patch is not breaking it.
On Monday 06 July 2026 17:49:27 Steve French wrote:
> It should work for sockets (and symlink) without EAs right? So would the
> patch break that?
>
> Thanks,
>
> Steve
>
> On Mon, Jul 6, 2026, 5:42 PM Pali Rohár <pali@xxxxxxxxxx> wrote:
>
> > If the server does not support EAs then setting the EAs (which is part
> > of the creating WSL special file) would fail and so WSL special file
> > would not be created. Major and minor numbers of char and block devices
> > is stored in the EAs and therefore without EAs support, it is not
> > possible to create and store char and block device nodes.
> >
> > On Monday 06 July 2026 17:33:42 Steve French wrote:
> > > If this were purely Linux, without this patch what would happen with
> > > creating special files if the server didn't support EAs. Would some
> > > special files still work?
> > >
> > > On Mon, Jul 6, 2026 at 1:52 PM Pali Rohár <pali@xxxxxxxxxx> wrote:
> > > >
> > > > WSL special files store information into EAs. When EAs are not
> > supported
> > > > on the server filesystem then fast fail in mknod_wsl() function.
> > > >
> > > > Signed-off-by: Pali Rohár <pali@xxxxxxxxxx>
> > > > ---
> > > > fs/smb/client/reparse.c | 7 +++++++
> > > > 1 file changed, 7 insertions(+)
> > > >
> > > > diff --git a/fs/smb/client/reparse.c b/fs/smb/client/reparse.c
> > > > index 99e93b56374f..e2ea59a17c9c 100644
> > > > --- a/fs/smb/client/reparse.c
> > > > +++ b/fs/smb/client/reparse.c
> > > > @@ -668,6 +668,13 @@ static int mknod_wsl(unsigned int xid, struct
> > inode *inode,
> > > > struct kvec reparse_iov, xattr_iov;
> > > > int rc;
> > > >
> > > > + /*
> > > > + * WSL special files store information into EAs. When EAs are
> > not
> > > > + * supported on the server filesystem then fast fail.
> > > > + */
> > > > + if (!(le32_to_cpu(tcon->fsAttrInfo.Attributes) &
> > FILE_SUPPORTS_EXTENDED_ATTRIBUTES))
> > > > + return -EOPNOTSUPP;
> > > > +
> > > > rc = wsl_set_reparse_buf(&buf, mode, symname, cifs_sb,
> > &reparse_iov);
> > > > if (rc)
> > > > return rc;
> > > > --
> > > > 2.20.1
> > > >
> > > >
> > >
> > >
> > > --
> > > Thanks,
> > >
> > > Steve
> >