[PATCH RESEND 07/11] cifs: Check if server supports EAs before trying to set it for WSL
Pali Rohár <[email protected]>
| Newsgroups | org.kernel.vger.linux-cifs,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- 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