Lines Matching refs:recon_state

3616 static int send_reconnect_partial(struct ceph_reconnect_state *recon_state)  in send_reconnect_partial()  argument
3624 if (!recon_state->allow_multi) in send_reconnect_partial()
3628 BUG_ON(!recon_state->nr_caps == !recon_state->nr_realms); in send_reconnect_partial()
3644 if (recon_state->nr_caps) { in send_reconnect_partial()
3646 err = ceph_pagelist_encode_32(recon_state->pagelist, 0); in send_reconnect_partial()
3656 err = ceph_pagelist_encode_8(recon_state->pagelist, 1); in send_reconnect_partial()
3660 page = list_first_entry(&recon_state->pagelist->head, struct page, lru); in send_reconnect_partial()
3662 if (recon_state->nr_caps) { in send_reconnect_partial()
3664 *addr = cpu_to_le32(recon_state->nr_caps); in send_reconnect_partial()
3667 *(addr + 1) = cpu_to_le32(recon_state->nr_realms); in send_reconnect_partial()
3674 reply->hdr.data_len = cpu_to_le32(recon_state->pagelist->length); in send_reconnect_partial()
3675 ceph_msg_data_add_pagelist(reply, recon_state->pagelist); in send_reconnect_partial()
3677 ceph_con_send(&recon_state->session->s_con, reply); in send_reconnect_partial()
3678 ceph_pagelist_release(recon_state->pagelist); in send_reconnect_partial()
3680 recon_state->pagelist = _pagelist; in send_reconnect_partial()
3681 recon_state->nr_caps = 0; in send_reconnect_partial()
3682 recon_state->nr_realms = 0; in send_reconnect_partial()
3683 recon_state->msg_version = 5; in send_reconnect_partial()
3736 struct ceph_reconnect_state *recon_state = arg; in reconnect_caps_cb() local
3737 struct ceph_pagelist *pagelist = recon_state->pagelist; in reconnect_caps_cb()
3752 recon_state->msg_version >= 2); in reconnect_caps_cb()
3778 if (recon_state->msg_version >= 2) { in reconnect_caps_cb()
3807 if (recon_state->msg_version >= 2) { in reconnect_caps_cb()
3843 if (recon_state->msg_version >= 3) { in reconnect_caps_cb()
3864 err = send_reconnect_partial(recon_state); in reconnect_caps_cb()
3867 pagelist = recon_state->pagelist; in reconnect_caps_cb()
3875 if (recon_state->msg_version >= 3) { in reconnect_caps_cb()
3903 recon_state->nr_caps++; in reconnect_caps_cb()
3908 struct ceph_reconnect_state *recon_state) in encode_snap_realms() argument
3911 struct ceph_pagelist *pagelist = recon_state->pagelist; in encode_snap_realms()
3914 if (recon_state->msg_version >= 4) { in encode_snap_realms()
3930 if (recon_state->msg_version >= 4) { in encode_snap_realms()
3935 err = send_reconnect_partial(recon_state); in encode_snap_realms()
3938 pagelist = recon_state->pagelist; in encode_snap_realms()
3960 recon_state->nr_realms++; in encode_snap_realms()
3983 struct ceph_reconnect_state recon_state = { in send_mds_reconnect() local
3990 recon_state.pagelist = ceph_pagelist_alloc(GFP_NOFS); in send_mds_reconnect()
3991 if (!recon_state.pagelist) in send_mds_reconnect()
4040 err = ceph_pagelist_encode_32(recon_state.pagelist, 0); in send_mds_reconnect()
4045 recon_state.msg_version = 3; in send_mds_reconnect()
4046 recon_state.allow_multi = true; in send_mds_reconnect()
4048 recon_state.msg_version = 3; in send_mds_reconnect()
4050 recon_state.msg_version = 2; in send_mds_reconnect()
4053 err = ceph_iterate_session_caps(session, reconnect_caps_cb, &recon_state); in send_mds_reconnect()
4065 recon_state.pagelist->length + in send_mds_reconnect()
4068 if (recon_state.msg_version >= 4) { in send_mds_reconnect()
4076 if (!recon_state.allow_multi) { in send_mds_reconnect()
4080 if (recon_state.nr_caps) { in send_mds_reconnect()
4081 err = send_reconnect_partial(&recon_state); in send_mds_reconnect()
4085 recon_state.msg_version = 5; in send_mds_reconnect()
4089 err = encode_snap_realms(mdsc, &recon_state); in send_mds_reconnect()
4093 if (recon_state.msg_version >= 5) { in send_mds_reconnect()
4094 err = ceph_pagelist_encode_8(recon_state.pagelist, 0); in send_mds_reconnect()
4099 if (recon_state.nr_caps || recon_state.nr_realms) { in send_mds_reconnect()
4101 list_first_entry(&recon_state.pagelist->head, in send_mds_reconnect()
4104 if (recon_state.nr_caps) { in send_mds_reconnect()
4105 WARN_ON(recon_state.nr_realms != mdsc->num_snap_realms); in send_mds_reconnect()
4106 *addr = cpu_to_le32(recon_state.nr_caps); in send_mds_reconnect()
4107 } else if (recon_state.msg_version >= 4) { in send_mds_reconnect()
4108 *(addr + 1) = cpu_to_le32(recon_state.nr_realms); in send_mds_reconnect()
4113 reply->hdr.version = cpu_to_le16(recon_state.msg_version); in send_mds_reconnect()
4114 if (recon_state.msg_version >= 4) in send_mds_reconnect()
4117 reply->hdr.data_len = cpu_to_le32(recon_state.pagelist->length); in send_mds_reconnect()
4118 ceph_msg_data_add_pagelist(reply, recon_state.pagelist); in send_mds_reconnect()
4129 ceph_pagelist_release(recon_state.pagelist); in send_mds_reconnect()
4137 ceph_pagelist_release(recon_state.pagelist); in send_mds_reconnect()