The S-1-5-88-1-<uid> and S-1-5-88-2-<gid> SIDs sent with a create
request take the raw kernel ids from kuid_t.val, which is gone now that
the ids can be UUIDs and GUIDs. Use __kuid_val()/__kgid_val(), the same
value for classic ids and -1 for the others, which have no unix SID.
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Jan Koester <redacted>
---
fs/smb/client/cifsacl.c | 2 +-
fs/smb/client/smb2pdu.c | 7 ++++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/fs/smb/client/cifsacl.c b/fs/smb/client/cifsacl.c
index c5e47a835f..78ed25b1f7 100644
--- a/fs/smb/client/cifsacl.c
+++ b/fs/smb/client/cifsacl.c
@@ -1086,7 +1086,7 @@ unsigned int setup_special_user_owner_ACE(struct smb_ace *pntace)
pntace->sid.sub_auth[0] = sid_unix_NFS_users.sub_auth[0];
pntace->sid.sub_auth[1] = sid_unix_NFS_users.sub_auth[1];
- pntace->sid.sub_auth[2] = cpu_to_le32(current_fsgid().val);
+ pntace->sid.sub_auth[2] = cpu_to_le32(__kgid_val(current_fsgid()));
/* size = 1 + 1 + 2 + 4 + 1 + 1 + 6 + (psid->num_subauth*4) */
pntace->size = cpu_to_le16(ace_size);
diff --git a/fs/smb/client/smb2pdu.c b/fs/smb/client/smb2pdu.c
index cfe3c4b4ab..941ca8a3d6 100644
--- a/fs/smb/client/smb2pdu.c
+++ b/fs/smb/client/smb2pdu.c
@@ -2731,7 +2731,7 @@ static void setup_owner_group_sids(char *buf)
sids->owner.Authority[5] = 5;
sids->owner.SubAuthorities[0] = cpu_to_le32(88);
sids->owner.SubAuthorities[1] = cpu_to_le32(1);
- sids->owner.SubAuthorities[2] = cpu_to_le32(current_fsuid().val);
+ sids->owner.SubAuthorities[2] = cpu_to_le32(__kuid_val(current_fsuid()));
/* Populate the group ownership fields S-1-5-88-2 */
sids->group.Revision = 1;
@@ -2739,9 +2739,10 @@ static void setup_owner_group_sids(char *buf)
sids->group.Authority[5] = 5;
sids->group.SubAuthorities[0] = cpu_to_le32(88);
sids->group.SubAuthorities[1] = cpu_to_le32(2);
- sids->group.SubAuthorities[2] = cpu_to_le32(current_fsgid().val);
+ sids->group.SubAuthorities[2] = cpu_to_le32(__kgid_val(current_fsgid()));
- cifs_dbg(FYI, "owner S-1-5-88-1-%d, group S-1-5-88-2-%d\n", current_fsuid().val, current_fsgid().val);
+ cifs_dbg(FYI, "owner S-1-5-88-1-%d, group S-1-5-88-2-%d\n",
+ __kuid_val(current_fsuid()), __kgid_val(current_fsgid()));
}
/* See MS-SMB2 2.2.13.2.2 and MS-DTYP 2.4.6 */
--
2.56.0