sunrpc/xprtrdma: clean up workqueue usage
authorTejun Heo <tj@kernel.org>
Fri, 15 Oct 2010 15:49:27 +0000 (17:49 +0200)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 21 Oct 2010 14:11:45 +0000 (10:11 -0400)
commita25e758c5fa1137e1bbc440194e55f7c59177145
tree4563a1d423ef9c9d54ca0c1222d34274613b31cf
parent8f3a6de313391b6910aa7db185eb9f3e930a51cf
sunrpc/xprtrdma: clean up workqueue usage

* Create and use svc_rdma_wq instead of using the system workqueue and
  flush_scheduled_work().  This workqueue is necessary to serve as
  flushing domain for rdma->sc_work which is used to destroy itself
  and thus can't be flushed explicitly.

* Replace cancel_delayed_work() + flush_scheduled_work() with
  cancel_delayed_work_sync().

* Implement synchronous connect in xprt_rdma_connect() using
  flush_delayed_work() on the rdma_connect work instead of using
  flush_scheduled_work().

This is to prepare for the deprecation and removal of
flush_scheduled_work().

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/xprtrdma/svc_rdma.c
net/sunrpc/xprtrdma/svc_rdma_transport.c
net/sunrpc/xprtrdma/transport.c