2008-05-23 15:27:36

by Tom Tucker

[permalink] [raw]
Subject: [PATCH] svcrdma: Add flush_scheduled_work to module exit function


Make certain all transports pending free are flushed from the wq
before unloading the module.

Signed-off-by: Tom Tucker <[email protected]>
---

Thanks to Andrew for pointing this out.

net/sunrpc/xprtrdma/svc_rdma.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
index 88c0ca2..b370e5c 100644
--- a/net/sunrpc/xprtrdma/svc_rdma.c
+++ b/net/sunrpc/xprtrdma/svc_rdma.c
@@ -236,6 +236,7 @@ static ctl_table svcrdma_root_table[] = {
void svc_rdma_cleanup(void)
{
dprintk("SVCRDMA Module Removed, deregister RPC RDMA transport\n");
+ flush_scheduled_work();
if (svcrdma_table_header) {
unregister_sysctl_table(svcrdma_table_header);
svcrdma_table_header = NULL;



2008-05-25 19:01:38

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH] svcrdma: Add flush_scheduled_work to module exit function

On Fri, May 23, 2008 at 10:31:25AM -0500, Tom Tucker wrote:
>
> Make certain all transports pending free are flushed from the wq
> before unloading the module.

OK, makes sense.

--b.

>
> Signed-off-by: Tom Tucker <[email protected]>
> ---
>
> Thanks to Andrew for pointing this out.
>
> net/sunrpc/xprtrdma/svc_rdma.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
> index 88c0ca2..b370e5c 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma.c
> @@ -236,6 +236,7 @@ static ctl_table svcrdma_root_table[] = {
> void svc_rdma_cleanup(void)
> {
> dprintk("SVCRDMA Module Removed, deregister RPC RDMA transport\n");
> + flush_scheduled_work();
> if (svcrdma_table_header) {
> unregister_sysctl_table(svcrdma_table_header);
> svcrdma_table_header = NULL;
>