Re: [PATCH] sunrpc: need delete xprt->timer in xs_destroy

2020-06-06 Thread Trond Myklebust
On Fri, 2020-06-05 at 10:10 +0800, Zhengbin (OSKernel) wrote: > The complete process is like this: > > xprt_destroy >wait_on_bit_lock(&xprt->state, XPRT_LOCKED, > TASK_UNINTERRUPTIBLE) > -->getlock >del_timer_sync(&xprt->timer) -->del xprt->timer >INIT_WORK(&xprt->task_cleanup, xpr

Re: [PATCH] sunrpc: need delete xprt->timer in xs_destroy

2020-06-05 Thread Yuehaibing
The issue trigger like this: mount_fs nfs_try_mount nfs_create_server nfs_init_server nfs_init_client nfs_create_rpc_client rpc_create xprt_create_transport xs_setup_udp xs_setup_xprt INIT_DELAYED_WORK(xs_udp_setup_socket)//timer

Re: [PATCH] sunrpc: need delete xprt->timer in xs_destroy

2020-06-04 Thread Zhengbin (OSKernel)
The complete process is like this: xprt_destroy   wait_on_bit_lock(&xprt->state, XPRT_LOCKED, TASK_UNINTERRUPTIBLE)  -->getlock   del_timer_sync(&xprt->timer)   -->del xprt->timer   INIT_WORK(&xprt->task_cleanup, xprt_destroy_cb) xprt_destroy_cb   xs_destroy(xprt->ops->destroy)     cancel_dela

Re: [PATCH] sunrpc: need delete xprt->timer in xs_destroy

2020-06-04 Thread Trond Myklebust
On Thu, 2020-06-04 at 22:49 +0800, Zheng Bin wrote: > If RPC use udp as it's transport protocol, transport->connect_worker > will call xs_udp_setup_socket. > xs_udp_setup_socket > sock = xs_create_sock > if (IS_ERR(sock)) > goto out; > out: > xprt_unlock_connect > xprt_schedule_

[PATCH] sunrpc: need delete xprt->timer in xs_destroy

2020-06-04 Thread Zheng Bin
If RPC use udp as it's transport protocol, transport->connect_worker will call xs_udp_setup_socket. xs_udp_setup_socket sock = xs_create_sock if (IS_ERR(sock)) goto out; out: xprt_unlock_connect xprt_schedule_autodisconnect mod_timer internal_add_timer -->inse