Project

General

Profile

Bug #48618 » reencode-gids.diff

Ilya Dryomov, 12/16/2020 05:02 PM

View differences:

fs/ceph/mds_client.c
struct ceph_mds_request_head_old *rhead;
struct ceph_msg *msg;
int flags = 0;
int i;
req->r_attempts++;
if (req->r_inode) {
......
ceph_encode_copy(&p, &ts, sizeof(ts));
}
/* gid_list in v4 */
if (session->s_con.peer_features & CEPH_FEATURE_FS_BTIME) {
WARN_ON(le16_to_cpu(msg->hdr.version) < 4);
ceph_encode_32(&p, req->r_cred->group_info->ngroups);
for (i = 0; i < req->r_cred->group_info->ngroups; i++)
ceph_encode_64(&p, from_kgid(&init_user_ns,
req->r_cred->group_info->gid[i]));
} else {
WARN_ON(le16_to_cpu(msg->hdr.version) >= 4);
}
msg->front.iov_len = p - msg->front.iov_base;
msg->hdr.front_len = cpu_to_le32(msg->front.iov_len);
return 0;
(1-1/2)