diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index cababd8..31be938 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1038,7 +1038,8 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode)
 		return rc;
 	}
 
-	if ((pTcon->ses->capabilities & CAP_UNIX) &&
+	if (!pTcon->broken_posix_open && pTcon->unix_ext &&
+	    (pTcon->ses->capabilities & CAP_UNIX) &&
 		(CIFS_UNIX_POSIX_PATH_OPS_CAP &
 			le64_to_cpu(pTcon->fsUnixInfo.Capability))) {
 		u32 oplock = 0;
