Lines Matching +refs:info +refs:get +refs:reply
75 struct ceph_mds_reply_info_in *info) in parse_reply_info_quota() argument
89 ceph_decode_64_safe(p, end, info->max_bytes, bad); in parse_reply_info_quota()
90 ceph_decode_64_safe(p, end, info->max_files, bad); in parse_reply_info_quota()
101 struct ceph_mds_reply_info_in *info, in parse_reply_info_in() argument
122 info->in = *p; in parse_reply_info_in()
124 sizeof(*info->in->fragtree.splits) * in parse_reply_info_in()
125 le32_to_cpu(info->in->fragtree.nsplits); in parse_reply_info_in()
127 ceph_decode_32_safe(p, end, info->symlink_len, bad); in parse_reply_info_in()
128 ceph_decode_need(p, end, info->symlink_len, bad); in parse_reply_info_in()
129 info->symlink = *p; in parse_reply_info_in()
130 *p += info->symlink_len; in parse_reply_info_in()
132 ceph_decode_copy_safe(p, end, &info->dir_layout, in parse_reply_info_in()
133 sizeof(info->dir_layout), bad); in parse_reply_info_in()
134 ceph_decode_32_safe(p, end, info->xattr_len, bad); in parse_reply_info_in()
135 ceph_decode_need(p, end, info->xattr_len, bad); in parse_reply_info_in()
136 info->xattr_data = *p; in parse_reply_info_in()
137 *p += info->xattr_len; in parse_reply_info_in()
141 ceph_decode_64_safe(p, end, info->inline_version, bad); in parse_reply_info_in()
142 ceph_decode_32_safe(p, end, info->inline_len, bad); in parse_reply_info_in()
143 ceph_decode_need(p, end, info->inline_len, bad); in parse_reply_info_in()
144 info->inline_data = *p; in parse_reply_info_in()
145 *p += info->inline_len; in parse_reply_info_in()
147 err = parse_reply_info_quota(p, end, info); in parse_reply_info_in()
151 ceph_decode_32_safe(p, end, info->pool_ns_len, bad); in parse_reply_info_in()
152 if (info->pool_ns_len > 0) { in parse_reply_info_in()
153 ceph_decode_need(p, end, info->pool_ns_len, bad); in parse_reply_info_in()
154 info->pool_ns_data = *p; in parse_reply_info_in()
155 *p += info->pool_ns_len; in parse_reply_info_in()
159 ceph_decode_need(p, end, sizeof(info->btime), bad); in parse_reply_info_in()
160 ceph_decode_copy(p, &info->btime, sizeof(info->btime)); in parse_reply_info_in()
163 ceph_decode_64_safe(p, end, info->change_attr, bad); in parse_reply_info_in()
167 ceph_decode_32_safe(p, end, info->dir_pin, bad); in parse_reply_info_in()
169 info->dir_pin = -ENODATA; in parse_reply_info_in()
174 ceph_decode_need(p, end, sizeof(info->snap_btime), bad); in parse_reply_info_in()
175 ceph_decode_copy(p, &info->snap_btime, in parse_reply_info_in()
176 sizeof(info->snap_btime)); in parse_reply_info_in()
178 memset(&info->snap_btime, 0, sizeof(info->snap_btime)); in parse_reply_info_in()
183 ceph_decode_64_safe(p, end, info->rsnaps, bad); in parse_reply_info_in()
185 info->rsnaps = 0; in parse_reply_info_in()
209 info->fscrypt_auth = NULL; in parse_reply_info_in()
210 info->fscrypt_auth_len = 0; in parse_reply_info_in()
211 info->fscrypt_file = NULL; in parse_reply_info_in()
212 info->fscrypt_file_len = 0; in parse_reply_info_in()
214 ceph_decode_32_safe(p, end, info->fscrypt_auth_len, bad); in parse_reply_info_in()
215 if (info->fscrypt_auth_len) { in parse_reply_info_in()
216 info->fscrypt_auth = kmalloc(info->fscrypt_auth_len, in parse_reply_info_in()
218 if (!info->fscrypt_auth) in parse_reply_info_in()
220 ceph_decode_copy_safe(p, end, info->fscrypt_auth, in parse_reply_info_in()
221 info->fscrypt_auth_len, bad); in parse_reply_info_in()
223 ceph_decode_32_safe(p, end, info->fscrypt_file_len, bad); in parse_reply_info_in()
224 if (info->fscrypt_file_len) { in parse_reply_info_in()
225 info->fscrypt_file = kmalloc(info->fscrypt_file_len, in parse_reply_info_in()
227 if (!info->fscrypt_file) in parse_reply_info_in()
229 ceph_decode_copy_safe(p, end, info->fscrypt_file, in parse_reply_info_in()
230 info->fscrypt_file_len, bad); in parse_reply_info_in()
237 ceph_decode_64_safe(p, end, info->inline_version, bad); in parse_reply_info_in()
238 ceph_decode_32_safe(p, end, info->inline_len, bad); in parse_reply_info_in()
239 ceph_decode_need(p, end, info->inline_len, bad); in parse_reply_info_in()
240 info->inline_data = *p; in parse_reply_info_in()
241 *p += info->inline_len; in parse_reply_info_in()
243 info->inline_version = CEPH_INLINE_NONE; in parse_reply_info_in()
246 err = parse_reply_info_quota(p, end, info); in parse_reply_info_in()
250 info->max_bytes = 0; in parse_reply_info_in()
251 info->max_files = 0; in parse_reply_info_in()
254 info->pool_ns_len = 0; in parse_reply_info_in()
255 info->pool_ns_data = NULL; in parse_reply_info_in()
257 ceph_decode_32_safe(p, end, info->pool_ns_len, bad); in parse_reply_info_in()
258 if (info->pool_ns_len > 0) { in parse_reply_info_in()
259 ceph_decode_need(p, end, info->pool_ns_len, bad); in parse_reply_info_in()
260 info->pool_ns_data = *p; in parse_reply_info_in()
261 *p += info->pool_ns_len; in parse_reply_info_in()
266 ceph_decode_need(p, end, sizeof(info->btime), bad); in parse_reply_info_in()
267 ceph_decode_copy(p, &info->btime, sizeof(info->btime)); in parse_reply_info_in()
268 ceph_decode_64_safe(p, end, info->change_attr, bad); in parse_reply_info_in()
271 info->dir_pin = -ENODATA; in parse_reply_info_in()
364 struct ceph_mds_reply_info_parsed *info, in parse_reply_info_trace() argument
369 if (info->head->is_dentry) { in parse_reply_info_trace()
370 err = parse_reply_info_in(p, end, &info->diri, features); in parse_reply_info_trace()
374 err = parse_reply_info_dir(p, end, &info->dirfrag, features); in parse_reply_info_trace()
378 ceph_decode_32_safe(p, end, info->dname_len, bad); in parse_reply_info_trace()
379 ceph_decode_need(p, end, info->dname_len, bad); in parse_reply_info_trace()
380 info->dname = *p; in parse_reply_info_trace()
381 *p += info->dname_len; in parse_reply_info_trace()
383 err = parse_reply_info_lease(p, end, &info->dlease, features, in parse_reply_info_trace()
384 &info->altname_len, &info->altname); in parse_reply_info_trace()
389 if (info->head->is_target) { in parse_reply_info_trace()
390 err = parse_reply_info_in(p, end, &info->targeti, features); in parse_reply_info_trace()
413 struct ceph_mds_reply_info_parsed *info = &req->r_reply_info; in parse_reply_info_readdir() local
417 err = parse_reply_info_dir(p, end, &info->dir_dir, features); in parse_reply_info_readdir()
425 info->dir_end = !!(flags & CEPH_READDIR_FRAG_END); in parse_reply_info_readdir()
426 info->dir_complete = !!(flags & CEPH_READDIR_FRAG_COMPLETE); in parse_reply_info_readdir()
427 info->hash_order = !!(flags & CEPH_READDIR_HASH_ORDER); in parse_reply_info_readdir()
428 info->offset_hash = !!(flags & CEPH_READDIR_OFFSET_HASH); in parse_reply_info_readdir()
433 BUG_ON(!info->dir_entries); in parse_reply_info_readdir()
434 if ((unsigned long)(info->dir_entries + num) > in parse_reply_info_readdir()
435 (unsigned long)info->dir_entries + info->dir_buf_size) { in parse_reply_info_readdir()
441 info->dir_nr = num; in parse_reply_info_readdir()
445 struct ceph_mds_reply_dir_entry *rde = info->dir_entries + i; in parse_reply_info_readdir()
459 if (info->hash_order) in parse_reply_info_readdir()
550 struct ceph_mds_reply_info_parsed *info, in parse_reply_info_filelock() argument
553 if (*p + sizeof(*info->filelock_reply) > end) in parse_reply_info_filelock()
556 info->filelock_reply = *p; in parse_reply_info_filelock()
661 struct ceph_mds_reply_info_parsed *info, in parse_reply_info_create() argument
670 info->has_create_ino = false; in parse_reply_info_create()
672 info->has_create_ino = true; in parse_reply_info_create()
675 ceph_decode_64_safe(p, end, info->ino, bad); in parse_reply_info_create()
681 ceph_decode_64_safe(p, end, info->ino, bad); in parse_reply_info_create()
682 info->has_create_ino = true; in parse_reply_info_create()
697 struct ceph_mds_reply_info_parsed *info, in parse_reply_info_getvxattr() argument
709 info->xattr_info.xattr_value = *p; in parse_reply_info_getvxattr()
710 info->xattr_info.xattr_value_len = value_len; in parse_reply_info_getvxattr()
725 struct ceph_mds_reply_info_parsed *info = &req->r_reply_info; in parse_reply_info_extra() local
726 u32 op = le32_to_cpu(info->head->op); in parse_reply_info_extra()
729 return parse_reply_info_filelock(p, end, info, features); in parse_reply_info_extra()
733 return parse_reply_info_create(p, end, info, features, s); in parse_reply_info_extra()
735 return parse_reply_info_getvxattr(p, end, info, features); in parse_reply_info_extra()
746 struct ceph_mds_reply_info_parsed *info = &req->r_reply_info; in parse_reply_info() local
751 info->head = msg->front.iov_base; in parse_reply_info()
759 err = parse_reply_info_trace(&p, p+len, info, features); in parse_reply_info()
775 info->snapblob_len = len; in parse_reply_info()
776 info->snapblob = p; in parse_reply_info()
791 static void destroy_reply_info(struct ceph_mds_reply_info_parsed *info) in destroy_reply_info() argument
795 kfree(info->diri.fscrypt_auth); in destroy_reply_info()
796 kfree(info->diri.fscrypt_file); in destroy_reply_info()
797 kfree(info->targeti.fscrypt_auth); in destroy_reply_info()
798 kfree(info->targeti.fscrypt_file); in destroy_reply_info()
799 if (!info->dir_entries) in destroy_reply_info()
802 for (i = 0; i < info->dir_nr; i++) { in destroy_reply_info()
803 struct ceph_mds_reply_dir_entry *rde = info->dir_entries + i; in destroy_reply_info()
808 free_pages((unsigned long)info->dir_entries, get_order(info->dir_buf_size)); in destroy_reply_info()
4181 struct ceph_msg *reply; in send_reconnect_partial() local
4198 reply = ceph_msg_new2(CEPH_MSG_CLIENT_RECONNECT, 0, 1, GFP_NOFS, false); in send_reconnect_partial()
4199 if (!reply) in send_reconnect_partial()
4234 reply->hdr.version = cpu_to_le16(5); in send_reconnect_partial()
4235 reply->hdr.compat_version = cpu_to_le16(4); in send_reconnect_partial()
4237 reply->hdr.data_len = cpu_to_le32(recon_state->pagelist->length); in send_reconnect_partial()
4238 ceph_msg_data_add_pagelist(reply, recon_state->pagelist); in send_reconnect_partial()
4240 ceph_con_send(&recon_state->session->s_con, reply); in send_reconnect_partial()
4249 ceph_msg_put(reply); in send_reconnect_partial()
4549 struct ceph_msg *reply; in send_mds_reconnect() local
4563 reply = ceph_msg_new2(CEPH_MSG_CLIENT_RECONNECT, 0, 1, GFP_NOFS, false); in send_mds_reconnect()
4564 if (!reply) in send_mds_reconnect()
4682 reply->hdr.version = cpu_to_le16(recon_state.msg_version); in send_mds_reconnect()
4684 reply->hdr.compat_version = cpu_to_le16(4); in send_mds_reconnect()
4686 reply->hdr.data_len = cpu_to_le32(recon_state.pagelist->length); in send_mds_reconnect()
4687 ceph_msg_data_add_pagelist(reply, recon_state.pagelist); in send_mds_reconnect()
4689 ceph_con_send(&session->s_con, reply); in send_mds_reconnect()
4702 ceph_msg_put(reply); in send_mds_reconnect()
5859 void *reply, int reply_len, in mds_handle_auth_reply_more() argument
5868 ret = ceph_auth_handle_svc_reply_more(ac, auth, reply, reply_len, in mds_handle_auth_reply_more()
5879 u64 global_id, void *reply, int reply_len, in mds_handle_auth_done() argument
5887 return ceph_auth_handle_svc_reply_done(ac, auth, reply, reply_len, in mds_handle_auth_done()
5951 .get = mds_get_con,