Bug #48618 » reencode-gids.diff
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;
|