Commit 9f632331 authored by Namjae Jeon's avatar Namjae Jeon Committed by Steve French
Browse files

ksmbd: add default data stream name in FILE_STREAM_INFORMATION



Windows client expect to get default stream name(::DATA) in
FILE_STREAM_INFORMATION response even if there is no stream data in file.
This patch fix update failure when writing ppt or doc files.

Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
Reviewed-By: default avatarTom Talpey <tom@talpey.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent e44fd508
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -4428,17 +4428,15 @@ static void get_file_stream_info(struct ksmbd_work *work,
		file_info->NextEntryOffset = cpu_to_le32(next);
	}

	if (nbytes) {
	if (!S_ISDIR(stat.mode)) {
		file_info = (struct smb2_file_stream_info *)
			&rsp->Buffer[nbytes];
		streamlen = smbConvertToUTF16((__le16 *)file_info->StreamName,
					      "::$DATA", 7, conn->local_nls, 0);
		streamlen *= 2;
		file_info->StreamNameLength = cpu_to_le32(streamlen);
		file_info->StreamSize = S_ISDIR(stat.mode) ? 0 :
			cpu_to_le64(stat.size);
		file_info->StreamAllocationSize = S_ISDIR(stat.mode) ? 0 :
			cpu_to_le64(stat.size);
		file_info->StreamSize = 0;
		file_info->StreamAllocationSize = 0;
		nbytes += sizeof(struct smb2_file_stream_info) + streamlen;
	}