Lines Matching refs:recon_state
4457 static int send_reconnect_partial(struct ceph_reconnect_state *recon_state) in send_reconnect_partial() argument
4465 if (!recon_state->allow_multi) in send_reconnect_partial()
4469 BUG_ON(!recon_state->nr_caps == !recon_state->nr_realms); in send_reconnect_partial()
4485 if (recon_state->nr_caps) { in send_reconnect_partial()
4487 err = ceph_pagelist_encode_32(recon_state->pagelist, 0); in send_reconnect_partial()
4497 err = ceph_pagelist_encode_8(recon_state->pagelist, 1); in send_reconnect_partial()
4501 page = list_first_entry(&recon_state->pagelist->head, struct page, lru); in send_reconnect_partial()
4503 if (recon_state->nr_caps) { in send_reconnect_partial()
4505 *addr = cpu_to_le32(recon_state->nr_caps); in send_reconnect_partial()
4508 *(addr + 1) = cpu_to_le32(recon_state->nr_realms); in send_reconnect_partial()
4515 reply->hdr.data_len = cpu_to_le32(recon_state->pagelist->length); in send_reconnect_partial()
4516 ceph_msg_data_add_pagelist(reply, recon_state->pagelist); in send_reconnect_partial()
4518 ceph_con_send(&recon_state->session->s_con, reply); in send_reconnect_partial()
4519 ceph_pagelist_release(recon_state->pagelist); in send_reconnect_partial()
4521 recon_state->pagelist = _pagelist; in send_reconnect_partial()
4522 recon_state->nr_caps = 0; in send_reconnect_partial()
4523 recon_state->nr_realms = 0; in send_reconnect_partial()
4524 recon_state->msg_version = 5; in send_reconnect_partial()
4578 struct ceph_reconnect_state *recon_state = arg; in reconnect_caps_cb() local
4579 struct ceph_pagelist *pagelist = recon_state->pagelist; in reconnect_caps_cb()
4591 recon_state->msg_version >= 2); in reconnect_caps_cb()
4627 if (recon_state->msg_version >= 2) { in reconnect_caps_cb()
4660 if (recon_state->msg_version >= 2) { in reconnect_caps_cb()
4696 if (recon_state->msg_version >= 3) { in reconnect_caps_cb()
4717 err = send_reconnect_partial(recon_state); in reconnect_caps_cb()
4720 pagelist = recon_state->pagelist; in reconnect_caps_cb()
4728 if (recon_state->msg_version >= 3) { in reconnect_caps_cb()
4756 recon_state->nr_caps++; in reconnect_caps_cb()
4761 struct ceph_reconnect_state *recon_state) in encode_snap_realms() argument
4764 struct ceph_pagelist *pagelist = recon_state->pagelist; in encode_snap_realms()
4768 if (recon_state->msg_version >= 4) { in encode_snap_realms()
4784 if (recon_state->msg_version >= 4) { in encode_snap_realms()
4789 err = send_reconnect_partial(recon_state); in encode_snap_realms()
4792 pagelist = recon_state->pagelist; in encode_snap_realms()
4814 recon_state->nr_realms++; in encode_snap_realms()
4838 struct ceph_reconnect_state recon_state = { in send_mds_reconnect() local
4845 recon_state.pagelist = ceph_pagelist_alloc(GFP_NOFS); in send_mds_reconnect()
4846 if (!recon_state.pagelist) in send_mds_reconnect()
4895 err = ceph_pagelist_encode_32(recon_state.pagelist, 0); in send_mds_reconnect()
4900 recon_state.msg_version = 3; in send_mds_reconnect()
4901 recon_state.allow_multi = true; in send_mds_reconnect()
4903 recon_state.msg_version = 3; in send_mds_reconnect()
4905 recon_state.msg_version = 2; in send_mds_reconnect()
4908 err = ceph_iterate_session_caps(session, reconnect_caps_cb, &recon_state); in send_mds_reconnect()
4920 recon_state.pagelist->length + in send_mds_reconnect()
4923 if (recon_state.msg_version >= 4) { in send_mds_reconnect()
4931 if (!recon_state.allow_multi) { in send_mds_reconnect()
4935 if (recon_state.nr_caps) { in send_mds_reconnect()
4936 err = send_reconnect_partial(&recon_state); in send_mds_reconnect()
4940 recon_state.msg_version = 5; in send_mds_reconnect()
4944 err = encode_snap_realms(mdsc, &recon_state); in send_mds_reconnect()
4948 if (recon_state.msg_version >= 5) { in send_mds_reconnect()
4949 err = ceph_pagelist_encode_8(recon_state.pagelist, 0); in send_mds_reconnect()
4954 if (recon_state.nr_caps || recon_state.nr_realms) { in send_mds_reconnect()
4956 list_first_entry(&recon_state.pagelist->head, in send_mds_reconnect()
4959 if (recon_state.nr_caps) { in send_mds_reconnect()
4960 WARN_ON(recon_state.nr_realms != mdsc->num_snap_realms); in send_mds_reconnect()
4961 *addr = cpu_to_le32(recon_state.nr_caps); in send_mds_reconnect()
4962 } else if (recon_state.msg_version >= 4) { in send_mds_reconnect()
4963 *(addr + 1) = cpu_to_le32(recon_state.nr_realms); in send_mds_reconnect()
4968 reply->hdr.version = cpu_to_le16(recon_state.msg_version); in send_mds_reconnect()
4969 if (recon_state.msg_version >= 4) in send_mds_reconnect()
4972 reply->hdr.data_len = cpu_to_le32(recon_state.pagelist->length); in send_mds_reconnect()
4973 ceph_msg_data_add_pagelist(reply, recon_state.pagelist); in send_mds_reconnect()
4984 ceph_pagelist_release(recon_state.pagelist); in send_mds_reconnect()
4992 ceph_pagelist_release(recon_state.pagelist); in send_mds_reconnect()