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

Commit d0c280d2 authored by Jeff Layton's avatar Jeff Layton Committed by Steve French
Browse files

cifs: when ATTR_READONLY is set, only clear write bits on non-directories

cifs: when ATTR_READONLY is set, only clear write bits on non-directories

On windows servers, ATTR_READONLY apparently either has no meaning or
serves as some sort of queue to certain applications for unrelated
behavior. This MS kbase article has details:

http://support.microsoft.com/kb/326549/



Don't clear the write bits directory mode when ATTR_READONLY is set.

Reported-by: default avatar <pouchat@peewiki.net>
Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent aeaaf253
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -419,11 +419,11 @@ cifs_all_info_to_fattr(struct cifs_fattr *fattr, FILE_ALL_INFO *info,
	} else {
		fattr->cf_mode = S_IFREG | cifs_sb->mnt_file_mode;
		fattr->cf_dtype = DT_REG;
	}

		/* clear write bits if ATTR_READONLY is set */
		if (fattr->cf_cifsattrs & ATTR_READONLY)
			fattr->cf_mode &= ~(S_IWUGO);
	}

	fattr->cf_nlink = le32_to_cpu(info->NumberOfLinks);