Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5b374ea authored by Steve French's avatar Steve French
Browse files

Workaround Mac server problem



Mac server returns that they support CIFS Unix Extensions but
doesn't actually support QUERY_FILE_UNIX_BASIC so mount fails.

Workaround this problem by disabling use of Unix CIFS protocol
extensions if server returns an EOPNOTSUPP error on
QUERY_FILE_UNIX_BASIC during mount.

Signed-off-by: default avatarSteve French <smfrench@gmail.com>
parent 2baa2682
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -960,11 +960,18 @@ struct inode *cifs_root_iget(struct super_block *sb)
	struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb);

	xid = get_xid();
	if (tcon->unix_ext)
	if (tcon->unix_ext) {
		rc = cifs_get_inode_info_unix(&inode, "", sb, xid);
	else
		/* some servers mistakenly claim POSIX support */
		if (rc != -EOPNOTSUPP)
			goto iget_no_retry;
		cifs_dbg(VFS, "server does not support POSIX extensions");
		tcon->unix_ext = false;
	}

	rc = cifs_get_inode_info(&inode, "", NULL, sb, xid, NULL);

iget_no_retry:
	if (!inode) {
		inode = ERR_PTR(rc);
		goto out;