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:43:50 EST
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