Lines Matching defs:recon_state

4359 static int send_reconnect_partial(struct ceph_reconnect_state *recon_state)
4367 if (!recon_state->allow_multi)
4371 BUG_ON(!recon_state->nr_caps == !recon_state->nr_realms);
4387 if (recon_state->nr_caps) {
4389 err = ceph_pagelist_encode_32(recon_state->pagelist, 0);
4399 err = ceph_pagelist_encode_8(recon_state->pagelist, 1);
4403 page = list_first_entry(&recon_state->pagelist->head, struct page, lru);
4405 if (recon_state->nr_caps) {
4407 *addr = cpu_to_le32(recon_state->nr_caps);
4410 *(addr + 1) = cpu_to_le32(recon_state->nr_realms);
4417 reply->hdr.data_len = cpu_to_le32(recon_state->pagelist->length);
4418 ceph_msg_data_add_pagelist(reply, recon_state->pagelist);
4420 ceph_con_send(&recon_state->session->s_con, reply);
4421 ceph_pagelist_release(recon_state->pagelist);
4423 recon_state->pagelist = _pagelist;
4424 recon_state->nr_caps = 0;
4425 recon_state->nr_realms = 0;
4426 recon_state->msg_version = 5;
4480 struct ceph_reconnect_state *recon_state = arg;
4481 struct ceph_pagelist *pagelist = recon_state->pagelist;
4493 recon_state->msg_version >= 2);
4529 if (recon_state->msg_version >= 2) {
4562 if (recon_state->msg_version >= 2) {
4598 if (recon_state->msg_version >= 3) {
4619 err = send_reconnect_partial(recon_state);
4622 pagelist = recon_state->pagelist;
4630 if (recon_state->msg_version >= 3) {
4658 recon_state->nr_caps++;
4663 struct ceph_reconnect_state *recon_state)
4666 struct ceph_pagelist *pagelist = recon_state->pagelist;
4670 if (recon_state->msg_version >= 4) {
4686 if (recon_state->msg_version >= 4) {
4691 err = send_reconnect_partial(recon_state);
4694 pagelist = recon_state->pagelist;
4716 recon_state->nr_realms++;
4740 struct ceph_reconnect_state recon_state = {
4747 recon_state.pagelist = ceph_pagelist_alloc(GFP_NOFS);
4748 if (!recon_state.pagelist)
4797 err = ceph_pagelist_encode_32(recon_state.pagelist, 0);
4802 recon_state.msg_version = 3;
4803 recon_state.allow_multi = true;
4805 recon_state.msg_version = 3;
4807 recon_state.msg_version = 2;
4810 err = ceph_iterate_session_caps(session, reconnect_caps_cb, &recon_state);
4822 recon_state.pagelist->length +
4825 if (recon_state.msg_version >= 4) {
4833 if (!recon_state.allow_multi) {
4837 if (recon_state.nr_caps) {
4838 err = send_reconnect_partial(&recon_state);
4842 recon_state.msg_version = 5;
4846 err = encode_snap_realms(mdsc, &recon_state);
4850 if (recon_state.msg_version >= 5) {
4851 err = ceph_pagelist_encode_8(recon_state.pagelist, 0);
4856 if (recon_state.nr_caps || recon_state.nr_realms) {
4858 list_first_entry(&recon_state.pagelist->head,
4861 if (recon_state.nr_caps) {
4862 WARN_ON(recon_state.nr_realms != mdsc->num_snap_realms);
4863 *addr = cpu_to_le32(recon_state.nr_caps);
4864 } else if (recon_state.msg_version >= 4) {
4865 *(addr + 1) = cpu_to_le32(recon_state.nr_realms);
4870 reply->hdr.version = cpu_to_le16(recon_state.msg_version);
4871 if (recon_state.msg_version >= 4)
4874 reply->hdr.data_len = cpu_to_le32(recon_state.pagelist->length);
4875 ceph_msg_data_add_pagelist(reply, recon_state.pagelist);
4886 ceph_pagelist_release(recon_state.pagelist);
4894 ceph_pagelist_release(recon_state.pagelist);