mds_beacon_interval: 4, //30.0,
mds_beacon_grace: 15, //60*60.0,
- mds_cap_timeout: 100, // cap bits time out if client idle
+ mds_cap_timeout: 100, // cap bits time out if client idle
mds_session_autoclose: 300, // autoclose idle session
- mds_client_lease: 30,
+ mds_client_lease: 100,
mds_tick_interval: 5,
sk->sk_state_change = ceph_state_change;
}
-void ceph_sock_release(struct socket *sock)
+void ceph_cancel_sock_callbacks(struct socket *sock)
{
struct sock *sk;
if (!sock)
sk->sk_data_ready = 0;
sk->sk_write_space = 0;
sk->sk_state_change = 0;
+}
+void ceph_sock_release(struct socket *sock)
+{
+ ceph_cancel_sock_callbacks(sock);
sock_release(sock);
}
int ceph_tcp_accept(struct socket *, struct ceph_connection *);
int ceph_tcp_recvmsg(struct socket *, void *, size_t );
int ceph_tcp_sendmsg(struct socket *, struct kvec *, size_t, size_t, int more);
+void ceph_cancel_sock_callbacks(struct socket *);
void ceph_sock_release(struct socket *);
int ceph_workqueue_init(void);
void ceph_workqueue_shutdown(void);
}
used = __ceph_caps_used(cap->ci);
wanted = __ceph_caps_wanted(cap->ci);
+ /* FIXME: this drops s_mutex, which we dont want, ugh */
__ceph_mdsc_send_cap(mdsc, session, cap, used, wanted, 0);
}
}
{
struct ceph_connection *con;
+ ceph_debug_msgr = 50;
+ ceph_debug_console = 1;
+
dout(2, "destroy %p\n", msgr);
+
+ /* stop listener */
+ ceph_cancel_sock_callbacks(msgr->listen_sock);
+ cancel_work_sync(&msgr->awork);
+ ceph_sock_release(msgr->listen_sock);
/* kill off connections */
spin_lock(&msgr->con_lock);
/* in case there's queued work... */
spin_unlock(&msgr->con_lock);
+ ceph_cancel_sock_callbacks(con->sock);
cancel_work_sync(&con->rwork);
cancel_delayed_work_sync(&con->swork);
put_connection(con);
+ dout(10, "destroy removed connection %p\n", con);
+
spin_lock(&msgr->con_lock);
}
spin_unlock(&msgr->con_lock);
- /* stop listener */
- ceph_sock_release(msgr->listen_sock);
- cancel_work_sync(&msgr->awork);
-
kunmap(msgr->zero_page);
__free_page(msgr->zero_page);
kfree(msgr);
+
+ dout(10, "destroyed messenger %p\n", msgr);
}
/*