Lines Matching refs:recon_state

3607 static int send_reconnect_partial(struct ceph_reconnect_state *recon_state)  in send_reconnect_partial()  argument
3615 if (!recon_state->allow_multi) in send_reconnect_partial()
3619 BUG_ON(!recon_state->nr_caps == !recon_state->nr_realms); in send_reconnect_partial()
3635 if (recon_state->nr_caps) { in send_reconnect_partial()
3637 err = ceph_pagelist_encode_32(recon_state->pagelist, 0); in send_reconnect_partial()
3647 err = ceph_pagelist_encode_8(recon_state->pagelist, 1); in send_reconnect_partial()
3651 page = list_first_entry(&recon_state->pagelist->head, struct page, lru); in send_reconnect_partial()
3653 if (recon_state->nr_caps) { in send_reconnect_partial()
3655 *addr = cpu_to_le32(recon_state->nr_caps); in send_reconnect_partial()
3658 *(addr + 1) = cpu_to_le32(recon_state->nr_realms); in send_reconnect_partial()
3665 reply->hdr.data_len = cpu_to_le32(recon_state->pagelist->length); in send_reconnect_partial()
3666 ceph_msg_data_add_pagelist(reply, recon_state->pagelist); in send_reconnect_partial()
3668 ceph_con_send(&recon_state->session->s_con, reply); in send_reconnect_partial()
3669 ceph_pagelist_release(recon_state->pagelist); in send_reconnect_partial()
3671 recon_state->pagelist = _pagelist; in send_reconnect_partial()
3672 recon_state->nr_caps = 0; in send_reconnect_partial()
3673 recon_state->nr_realms = 0; in send_reconnect_partial()
3674 recon_state->msg_version = 5; in send_reconnect_partial()
3727 struct ceph_reconnect_state *recon_state = arg; in reconnect_caps_cb() local
3728 struct ceph_pagelist *pagelist = recon_state->pagelist; in reconnect_caps_cb()
3743 recon_state->msg_version >= 2); in reconnect_caps_cb()
3769 if (recon_state->msg_version >= 2) { in reconnect_caps_cb()
3798 if (recon_state->msg_version >= 2) { in reconnect_caps_cb()
3834 if (recon_state->msg_version >= 3) { in reconnect_caps_cb()
3855 err = send_reconnect_partial(recon_state); in reconnect_caps_cb()
3858 pagelist = recon_state->pagelist; in reconnect_caps_cb()
3866 if (recon_state->msg_version >= 3) { in reconnect_caps_cb()
3894 recon_state->nr_caps++; in reconnect_caps_cb()
3899 struct ceph_reconnect_state *recon_state) in encode_snap_realms() argument
3902 struct ceph_pagelist *pagelist = recon_state->pagelist; in encode_snap_realms()
3905 if (recon_state->msg_version >= 4) { in encode_snap_realms()
3921 if (recon_state->msg_version >= 4) { in encode_snap_realms()
3926 err = send_reconnect_partial(recon_state); in encode_snap_realms()
3929 pagelist = recon_state->pagelist; in encode_snap_realms()
3951 recon_state->nr_realms++; in encode_snap_realms()
3974 struct ceph_reconnect_state recon_state = { in send_mds_reconnect() local
3981 recon_state.pagelist = ceph_pagelist_alloc(GFP_NOFS); in send_mds_reconnect()
3982 if (!recon_state.pagelist) in send_mds_reconnect()
4033 err = ceph_pagelist_encode_32(recon_state.pagelist, 0); in send_mds_reconnect()
4038 recon_state.msg_version = 3; in send_mds_reconnect()
4039 recon_state.allow_multi = true; in send_mds_reconnect()
4041 recon_state.msg_version = 3; in send_mds_reconnect()
4043 recon_state.msg_version = 2; in send_mds_reconnect()
4046 err = ceph_iterate_session_caps(session, reconnect_caps_cb, &recon_state); in send_mds_reconnect()
4058 recon_state.pagelist->length + in send_mds_reconnect()
4061 if (recon_state.msg_version >= 4) { in send_mds_reconnect()
4069 if (!recon_state.allow_multi) { in send_mds_reconnect()
4073 if (recon_state.nr_caps) { in send_mds_reconnect()
4074 err = send_reconnect_partial(&recon_state); in send_mds_reconnect()
4078 recon_state.msg_version = 5; in send_mds_reconnect()
4082 err = encode_snap_realms(mdsc, &recon_state); in send_mds_reconnect()
4086 if (recon_state.msg_version >= 5) { in send_mds_reconnect()
4087 err = ceph_pagelist_encode_8(recon_state.pagelist, 0); in send_mds_reconnect()
4092 if (recon_state.nr_caps || recon_state.nr_realms) { in send_mds_reconnect()
4094 list_first_entry(&recon_state.pagelist->head, in send_mds_reconnect()
4097 if (recon_state.nr_caps) { in send_mds_reconnect()
4098 WARN_ON(recon_state.nr_realms != mdsc->num_snap_realms); in send_mds_reconnect()
4099 *addr = cpu_to_le32(recon_state.nr_caps); in send_mds_reconnect()
4100 } else if (recon_state.msg_version >= 4) { in send_mds_reconnect()
4101 *(addr + 1) = cpu_to_le32(recon_state.nr_realms); in send_mds_reconnect()
4106 reply->hdr.version = cpu_to_le16(recon_state.msg_version); in send_mds_reconnect()
4107 if (recon_state.msg_version >= 4) in send_mds_reconnect()
4110 reply->hdr.data_len = cpu_to_le32(recon_state.pagelist->length); in send_mds_reconnect()
4111 ceph_msg_data_add_pagelist(reply, recon_state.pagelist); in send_mds_reconnect()
4122 ceph_pagelist_release(recon_state.pagelist); in send_mds_reconnect()
4130 ceph_pagelist_release(recon_state.pagelist); in send_mds_reconnect()