cifs: rename posix create rsp
little progress on the posix create response. * rename struct to create_posix_rsp to match with the request create_posix context * make struct packed * pass smb info struct for parse_posix_ctxt to fill * use smb info struct as param * update TODO What needs to be done: SMB2_open() has an optional smb info out argument that it will fill. Callers making use of this are: - smb3_query_mf_symlink (need to investigate) - smb2_open_file Callers of smb2_open_file (via server->ops->open) are passing an smbinfo struct but that struct cannot hold POSIX information. All the call stack needs to be changed for a different info type. Maybe pass SMB generic struct like cifs_fattr instead. Signed-off-by: Aurelien Aptel <aaptel@suse.com> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
8fe0c2c2cb
commit
2e8af978d9
|
@ -1951,13 +1951,18 @@ parse_query_id_ctxt(struct create_context *cc, struct smb2_file_all_info *buf)
|
|||
}
|
||||
|
||||
static void
|
||||
parse_posix_ctxt(struct create_context *cc, struct smb_posix_info *pposix_inf)
|
||||
parse_posix_ctxt(struct create_context *cc, struct smb2_file_all_info *info)
|
||||
{
|
||||
/* struct smb_posix_info *ppinf = (struct smb_posix_info *)cc; */
|
||||
/* struct create_posix_rsp *posix = (struct create_posix_rsp *)cc; */
|
||||
|
||||
/* TODO: Need to add parsing for the context and return */
|
||||
/*
|
||||
* TODO: Need to add parsing for the context and return. Can
|
||||
* smb2_file_all_info hold POSIX data? Need to change the
|
||||
* passed type from SMB2_open.
|
||||
*/
|
||||
printk_once(KERN_WARNING
|
||||
"SMB3 3.11 POSIX response context not completed yet\n");
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1995,7 +2000,7 @@ smb2_parse_contexts(struct TCP_Server_Info *server,
|
|||
parse_query_id_ctxt(cc, buf);
|
||||
else if ((le16_to_cpu(cc->NameLength) == 16)) {
|
||||
if (memcmp(name, smb3_create_tag_posix, 16) == 0)
|
||||
parse_posix_ctxt(cc, NULL);
|
||||
parse_posix_ctxt(cc, buf);
|
||||
}
|
||||
/* else {
|
||||
cifs_dbg(FYI, "Context not matched with len %d\n",
|
||||
|
|
|
@ -1604,11 +1604,14 @@ struct smb2_file_id_information {
|
|||
extern char smb2_padding[7];
|
||||
|
||||
/* equivalent of the contents of SMB3.1.1 POSIX open context response */
|
||||
struct smb_posix_info {
|
||||
struct create_posix_rsp {
|
||||
__le32 nlink;
|
||||
__le32 reparse_tag;
|
||||
__le32 mode;
|
||||
kuid_t uid;
|
||||
kuid_t gid;
|
||||
/*
|
||||
* var sized owner SID
|
||||
* var sized group SID
|
||||
*/
|
||||
} __packed;
|
||||
};
|
||||
#endif /* _SMB2PDU_H */
|
||||
|
|
Loading…
Reference in New Issue