Lines Matching refs:end
73 static int parse_reply_info_quota(void **p, void *end, in parse_reply_info_quota() argument
79 ceph_decode_8_safe(p, end, struct_v, bad); in parse_reply_info_quota()
80 ceph_decode_8_safe(p, end, struct_compat, bad); in parse_reply_info_quota()
85 ceph_decode_32_safe(p, end, struct_len, bad); in parse_reply_info_quota()
86 ceph_decode_need(p, end, struct_len, bad); in parse_reply_info_quota()
87 end = *p + struct_len; in parse_reply_info_quota()
88 ceph_decode_64_safe(p, end, info->max_bytes, bad); in parse_reply_info_quota()
89 ceph_decode_64_safe(p, end, info->max_files, bad); in parse_reply_info_quota()
90 *p = end; in parse_reply_info_quota()
99 static int parse_reply_info_in(void **p, void *end, in parse_reply_info_in() argument
109 ceph_decode_8_safe(p, end, struct_v, bad); in parse_reply_info_in()
110 ceph_decode_8_safe(p, end, struct_compat, bad); in parse_reply_info_in()
115 ceph_decode_32_safe(p, end, struct_len, bad); in parse_reply_info_in()
116 ceph_decode_need(p, end, struct_len, bad); in parse_reply_info_in()
117 end = *p + struct_len; in parse_reply_info_in()
120 ceph_decode_need(p, end, sizeof(struct ceph_mds_reply_inode), bad); in parse_reply_info_in()
126 ceph_decode_32_safe(p, end, info->symlink_len, bad); in parse_reply_info_in()
127 ceph_decode_need(p, end, info->symlink_len, bad); in parse_reply_info_in()
131 ceph_decode_copy_safe(p, end, &info->dir_layout, in parse_reply_info_in()
133 ceph_decode_32_safe(p, end, info->xattr_len, bad); in parse_reply_info_in()
134 ceph_decode_need(p, end, info->xattr_len, bad); in parse_reply_info_in()
140 ceph_decode_64_safe(p, end, info->inline_version, bad); in parse_reply_info_in()
141 ceph_decode_32_safe(p, end, info->inline_len, bad); in parse_reply_info_in()
142 ceph_decode_need(p, end, info->inline_len, bad); in parse_reply_info_in()
146 err = parse_reply_info_quota(p, end, info); in parse_reply_info_in()
150 ceph_decode_32_safe(p, end, info->pool_ns_len, bad); in parse_reply_info_in()
152 ceph_decode_need(p, end, info->pool_ns_len, bad); in parse_reply_info_in()
158 ceph_decode_need(p, end, sizeof(info->btime), bad); in parse_reply_info_in()
162 ceph_decode_64_safe(p, end, info->change_attr, bad); in parse_reply_info_in()
166 ceph_decode_32_safe(p, end, info->dir_pin, bad); in parse_reply_info_in()
173 ceph_decode_need(p, end, sizeof(info->snap_btime), bad); in parse_reply_info_in()
182 ceph_decode_64_safe(p, end, info->rsnaps, bad); in parse_reply_info_in()
187 *p = end; in parse_reply_info_in()
190 ceph_decode_64_safe(p, end, info->inline_version, bad); in parse_reply_info_in()
191 ceph_decode_32_safe(p, end, info->inline_len, bad); in parse_reply_info_in()
192 ceph_decode_need(p, end, info->inline_len, bad); in parse_reply_info_in()
199 err = parse_reply_info_quota(p, end, info); in parse_reply_info_in()
210 ceph_decode_32_safe(p, end, info->pool_ns_len, bad); in parse_reply_info_in()
212 ceph_decode_need(p, end, info->pool_ns_len, bad); in parse_reply_info_in()
219 ceph_decode_need(p, end, sizeof(info->btime), bad); in parse_reply_info_in()
221 ceph_decode_64_safe(p, end, info->change_attr, bad); in parse_reply_info_in()
234 static int parse_reply_info_dir(void **p, void *end, in parse_reply_info_dir() argument
241 ceph_decode_8_safe(p, end, struct_v, bad); in parse_reply_info_dir()
242 ceph_decode_8_safe(p, end, struct_compat, bad); in parse_reply_info_dir()
247 ceph_decode_32_safe(p, end, struct_len, bad); in parse_reply_info_dir()
248 ceph_decode_need(p, end, struct_len, bad); in parse_reply_info_dir()
249 end = *p + struct_len; in parse_reply_info_dir()
252 ceph_decode_need(p, end, sizeof(**dirfrag), bad); in parse_reply_info_dir()
255 if (unlikely(*p > end)) in parse_reply_info_dir()
258 *p = end; in parse_reply_info_dir()
264 static int parse_reply_info_lease(void **p, void *end, in parse_reply_info_lease() argument
271 ceph_decode_8_safe(p, end, struct_v, bad); in parse_reply_info_lease()
272 ceph_decode_8_safe(p, end, struct_compat, bad); in parse_reply_info_lease()
277 ceph_decode_32_safe(p, end, struct_len, bad); in parse_reply_info_lease()
278 ceph_decode_need(p, end, struct_len, bad); in parse_reply_info_lease()
279 end = *p + struct_len; in parse_reply_info_lease()
282 ceph_decode_need(p, end, sizeof(**lease), bad); in parse_reply_info_lease()
286 *p = end; in parse_reply_info_lease()
296 static int parse_reply_info_trace(void **p, void *end, in parse_reply_info_trace() argument
303 err = parse_reply_info_in(p, end, &info->diri, features); in parse_reply_info_trace()
307 err = parse_reply_info_dir(p, end, &info->dirfrag, features); in parse_reply_info_trace()
311 ceph_decode_32_safe(p, end, info->dname_len, bad); in parse_reply_info_trace()
312 ceph_decode_need(p, end, info->dname_len, bad); in parse_reply_info_trace()
316 err = parse_reply_info_lease(p, end, &info->dlease, features); in parse_reply_info_trace()
322 err = parse_reply_info_in(p, end, &info->targeti, features); in parse_reply_info_trace()
327 if (unlikely(*p != end)) in parse_reply_info_trace()
341 static int parse_reply_info_readdir(void **p, void *end, in parse_reply_info_readdir() argument
348 err = parse_reply_info_dir(p, end, &info->dir_dir, features); in parse_reply_info_readdir()
352 ceph_decode_need(p, end, sizeof(num) + 2, bad); in parse_reply_info_readdir()
376 ceph_decode_32_safe(p, end, rde->name_len, bad); in parse_reply_info_readdir()
377 ceph_decode_need(p, end, rde->name_len, bad); in parse_reply_info_readdir()
383 err = parse_reply_info_lease(p, end, &rde->lease, features); in parse_reply_info_readdir()
387 err = parse_reply_info_in(p, end, &rde->inode, features); in parse_reply_info_readdir()
398 *p = end; in parse_reply_info_readdir()
411 static int parse_reply_info_filelock(void **p, void *end, in parse_reply_info_filelock() argument
415 if (*p + sizeof(*info->filelock_reply) > end) in parse_reply_info_filelock()
421 *p = end; in parse_reply_info_filelock()
432 static int ceph_parse_deleg_inos(void **p, void *end, in ceph_parse_deleg_inos() argument
437 ceph_decode_32_safe(p, end, sets, bad); in ceph_parse_deleg_inos()
442 ceph_decode_64_safe(p, end, start, bad); in ceph_parse_deleg_inos()
443 ceph_decode_64_safe(p, end, len, bad); in ceph_parse_deleg_inos()
495 static int ceph_parse_deleg_inos(void **p, void *end, in ceph_parse_deleg_inos() argument
500 ceph_decode_32_safe(p, end, sets, bad); in ceph_parse_deleg_inos()
502 ceph_decode_skip_n(p, end, sets * 2 * sizeof(__le64), bad); in ceph_parse_deleg_inos()
522 static int parse_reply_info_create(void **p, void *end, in parse_reply_info_create() argument
530 if (*p == end) { in parse_reply_info_create()
536 ceph_decode_skip_n(p, end, 2 + sizeof(u32), bad); in parse_reply_info_create()
537 ceph_decode_64_safe(p, end, info->ino, bad); in parse_reply_info_create()
538 ret = ceph_parse_deleg_inos(p, end, s); in parse_reply_info_create()
543 ceph_decode_64_safe(p, end, info->ino, bad); in parse_reply_info_create()
547 if (*p != end) in parse_reply_info_create()
552 *p = end; in parse_reply_info_create()
561 static int parse_reply_info_extra(void **p, void *end, in parse_reply_info_extra() argument
568 return parse_reply_info_filelock(p, end, info, features); in parse_reply_info_extra()
570 return parse_reply_info_readdir(p, end, info, features); in parse_reply_info_extra()
572 return parse_reply_info_create(p, end, info, features, s); in parse_reply_info_extra()
584 void *p, *end; in parse_reply_info() local
590 end = p + msg->front.iov_len - sizeof(struct ceph_mds_reply_head); in parse_reply_info()
593 ceph_decode_32_safe(&p, end, len, bad); in parse_reply_info()
595 ceph_decode_need(&p, end, len, bad); in parse_reply_info()
602 ceph_decode_32_safe(&p, end, len, bad); in parse_reply_info()
604 ceph_decode_need(&p, end, len, bad); in parse_reply_info()
611 ceph_decode_32_safe(&p, end, len, bad); in parse_reply_info()
616 if (p != end) in parse_reply_info()
1192 static int encode_supported_features(void **p, void *end) in encode_supported_features() argument
1201 if (WARN_ON_ONCE(*p + 4 + size > end)) in encode_supported_features()
1212 if (WARN_ON_ONCE(*p + 4 > end)) in encode_supported_features()
1223 static int encode_metric_spec(void **p, void *end) in encode_metric_spec() argument
1228 if (WARN_ON_ONCE(*p + 2 > end)) in encode_metric_spec()
1238 if (WARN_ON_ONCE(*p + 4 + 4 + size > end)) in encode_metric_spec()
1251 if (WARN_ON_ONCE(*p + 4 + 4 > end)) in encode_metric_spec()
1277 void *p, *end; in create_session_open_msg() local
1318 end = p + msg->front.iov_len; in create_session_open_msg()
1352 ret = encode_supported_features(&p, end); in create_session_open_msg()
1359 ret = encode_metric_spec(&p, end); in create_session_open_msg()
2561 void *p, *end; in create_request_message() local
2625 end = msg->front.iov_base + msg->front.iov_len; in create_request_message()
2636 ceph_encode_filepath(&p, end, ino1, path1); in create_request_message()
2637 ceph_encode_filepath(&p, end, ino2, path2); in create_request_message()
2672 if (WARN_ON_ONCE(p > end)) { in create_request_message()
3379 void *end = p + msg->front.iov_len; in handle_forward() local
3381 ceph_decode_need(&p, end, 2*sizeof(u32), bad); in handle_forward()
3418 static int __decode_session_metadata(void **p, void *end, in __decode_session_metadata() argument
3424 ceph_decode_32_safe(p, end, n, bad); in __decode_session_metadata()
3427 ceph_decode_32_safe(p, end, len, bad); in __decode_session_metadata()
3428 ceph_decode_need(p, end, len, bad); in __decode_session_metadata()
3431 ceph_decode_32_safe(p, end, len, bad); in __decode_session_metadata()
3432 ceph_decode_need(p, end, len, bad); in __decode_session_metadata()
3456 void *end = p + msg->front.iov_len; in handle_session() local
3464 ceph_decode_need(&p, end, sizeof(*h), bad); in handle_session()
3474 if (__decode_session_metadata(&p, end, &blocklisted) < 0) in handle_session()
3477 ceph_decode_32_safe(&p, end, len, bad); in handle_session()
3479 ceph_decode_64_safe(&p, end, features, bad); in handle_session()
5050 void *end = p + msg->front.iov_len; in ceph_mdsc_handle_fsmap() local
5056 ceph_decode_need(&p, end, sizeof(u32), bad); in ceph_mdsc_handle_fsmap()
5062 ceph_decode_skip_n(&p, end, 2 + sizeof(u32) * 3, bad); in ceph_mdsc_handle_fsmap()
5064 ceph_decode_32_safe(&p, end, num_fs, bad); in ceph_mdsc_handle_fsmap()
5070 ceph_decode_need(&p, end, 2 + sizeof(u32), bad); in ceph_mdsc_handle_fsmap()
5073 ceph_decode_need(&p, end, info_len, bad); in ceph_mdsc_handle_fsmap()
5120 void *end = p + msg->front.iov_len; in ceph_mdsc_handle_mdsmap() local
5125 ceph_decode_need(&p, end, sizeof(fsid)+2*sizeof(u32), bad); in ceph_mdsc_handle_mdsmap()
5142 newmap = ceph_mdsmap_decode(&p, end, ceph_msgr2(mdsc->fsc->client)); in ceph_mdsc_handle_mdsmap()