le32_to_cpu(sd_buf->ccontext.DataLength), true);
 }
 
-static void ksmbd_acls_fattr(struct smb_fattr *fattr, struct inode *inode)
+static void ksmbd_acls_fattr(struct smb_fattr *fattr,
+                            struct user_namespace *mnt_userns,
+                            struct inode *inode)
 {
-       fattr->cf_uid = inode->i_uid;
-       fattr->cf_gid = inode->i_gid;
+       fattr->cf_uid = i_uid_into_mnt(mnt_userns, inode);
+       fattr->cf_gid = i_gid_into_mnt(mnt_userns, inode);
        fattr->cf_mode = inode->i_mode;
        fattr->cf_acls = NULL;
        fattr->cf_dacls = NULL;
                                        struct smb_ntsd *pntsd;
                                        int pntsd_size, ace_num = 0;
 
-                                       ksmbd_acls_fattr(&fattr, inode);
+                                       ksmbd_acls_fattr(&fattr, user_ns, inode);
                                        if (fattr.cf_acls)
                                                ace_num = fattr.cf_acls->a_count;
                                        if (fattr.cf_dacls)
 
        user_ns = file_mnt_user_ns(fp->filp);
        inode = file_inode(fp->filp);
-       ksmbd_acls_fattr(&fattr, inode);
+       ksmbd_acls_fattr(&fattr, user_ns, inode);
 
        if (test_share_config_flag(work->tcon->share_conf,
                                   KSMBD_SHARE_FLAG_ACL_XATTR))
 
        }
 
        /* owner RID */
-       uid = from_kuid(user_ns, fattr->cf_uid);
+       uid = from_kuid(&init_user_ns, fattr->cf_uid);
        if (uid)
                sid = &server_conf.domain_sid;
        else
        ace_size = fill_ace_for_sid(pace, &sid_unix_groups,
                                    ACCESS_ALLOWED, 0, fattr->cf_mode, 0070);
        pace->sid.sub_auth[pace->sid.num_subauth++] =
-               cpu_to_le32(from_kgid(user_ns, fattr->cf_gid));
+               cpu_to_le32(from_kgid(&init_user_ns, fattr->cf_gid));
        pace->size = cpu_to_le16(ace_size + 4);
        size += le16_to_cpu(pace->size);
        pace = (struct smb_ace *)((char *)pndace + size);
        if (!nowner_sid_ptr)
                return -ENOMEM;
 
-       uid = from_kuid(user_ns, fattr->cf_uid);
+       uid = from_kuid(&init_user_ns, fattr->cf_uid);
        if (!uid)
                sid_type = SIDUNIX_USER;
        id_to_sid(uid, sid_type, nowner_sid_ptr);
                return -ENOMEM;
        }
 
-       gid = from_kgid(user_ns, fattr->cf_gid);
+       gid = from_kgid(&init_user_ns, fattr->cf_gid);
        id_to_sid(gid, SIDUNIX_GROUP, ngroup_sid_ptr);
 
        offset = sizeof(struct smb_ntsd);