diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-11-07 04:32:44 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-11-07 04:32:44 -0500 |
commit | 8c5db92a705d9e2c986adec475980d1120fa07b4 (patch) | |
tree | 9f0eea56889819707c0a1a8eb5b1fb2db3cdaf3d /net/sunrpc | |
parent | ca5d376e17072c1b60c3fee66f3be58ef018952d (diff) | |
parent | e4880bc5dfb1f02b152e62a894b5c6f3e995b3cf (diff) |
Merge branch 'linus' into locking/core, to resolve conflicts
Conflicts:
include/linux/compiler-clang.h
include/linux/compiler-gcc.h
include/linux/compiler-intel.h
include/uapi/linux/stddef.h
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/Makefile | 1 | ||||
-rw-r--r-- | net/sunrpc/auth_gss/Makefile | 1 | ||||
-rw-r--r-- | net/sunrpc/auth_null.c | 1 | ||||
-rw-r--r-- | net/sunrpc/auth_unix.c | 1 | ||||
-rw-r--r-- | net/sunrpc/debugfs.c | 1 | ||||
-rw-r--r-- | net/sunrpc/netns.h | 1 | ||||
-rw-r--r-- | net/sunrpc/xprt.c | 36 | ||||
-rw-r--r-- | net/sunrpc/xprtmultipath.c | 1 | ||||
-rw-r--r-- | net/sunrpc/xprtrdma/Makefile | 1 | ||||
-rw-r--r-- | net/sunrpc/xprtrdma/backchannel.c | 1 | ||||
-rw-r--r-- | net/sunrpc/xprtrdma/fmr_ops.c | 1 | ||||
-rw-r--r-- | net/sunrpc/xprtrdma/frwr_ops.c | 1 | ||||
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 1 | ||||
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_rw.c | 1 | ||||
-rw-r--r-- | net/sunrpc/xprtsock.c | 1 |
15 files changed, 39 insertions, 11 deletions
diff --git a/net/sunrpc/Makefile b/net/sunrpc/Makefile index ea7ffa12e0f9..090658c3da12 100644 --- a/net/sunrpc/Makefile +++ b/net/sunrpc/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # | 2 | # |
2 | # Makefile for Linux kernel SUN RPC | 3 | # Makefile for Linux kernel SUN RPC |
3 | # | 4 | # |
diff --git a/net/sunrpc/auth_gss/Makefile b/net/sunrpc/auth_gss/Makefile index 14e9e53e63d5..c374268b008f 100644 --- a/net/sunrpc/auth_gss/Makefile +++ b/net/sunrpc/auth_gss/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | # | 2 | # |
2 | # Makefile for Linux kernel rpcsec_gss implementation | 3 | # Makefile for Linux kernel rpcsec_gss implementation |
3 | # | 4 | # |
diff --git a/net/sunrpc/auth_null.c b/net/sunrpc/auth_null.c index 5f3d527dff65..75d72e109a04 100644 --- a/net/sunrpc/auth_null.c +++ b/net/sunrpc/auth_null.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * linux/net/sunrpc/auth_null.c | 3 | * linux/net/sunrpc/auth_null.c |
3 | * | 4 | * |
diff --git a/net/sunrpc/auth_unix.c b/net/sunrpc/auth_unix.c index 82337e1ec9cd..dafd6b870ba3 100644 --- a/net/sunrpc/auth_unix.c +++ b/net/sunrpc/auth_unix.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * linux/net/sunrpc/auth_unix.c | 3 | * linux/net/sunrpc/auth_unix.c |
3 | * | 4 | * |
diff --git a/net/sunrpc/debugfs.c b/net/sunrpc/debugfs.c index c8fd0b6c1618..e980d2a493de 100644 --- a/net/sunrpc/debugfs.c +++ b/net/sunrpc/debugfs.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /** | 2 | /** |
2 | * debugfs interface for sunrpc | 3 | * debugfs interface for sunrpc |
3 | * | 4 | * |
diff --git a/net/sunrpc/netns.h b/net/sunrpc/netns.h index 394ce523174c..7ec10b92bea1 100644 --- a/net/sunrpc/netns.h +++ b/net/sunrpc/netns.h | |||
@@ -1,3 +1,4 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
1 | #ifndef __SUNRPC_NETNS_H__ | 2 | #ifndef __SUNRPC_NETNS_H__ |
2 | #define __SUNRPC_NETNS_H__ | 3 | #define __SUNRPC_NETNS_H__ |
3 | 4 | ||
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index e741ec2b4d8e..898485e3ece4 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c | |||
@@ -1333,7 +1333,7 @@ void xprt_release(struct rpc_task *task) | |||
1333 | rpc_count_iostats(task, task->tk_client->cl_metrics); | 1333 | rpc_count_iostats(task, task->tk_client->cl_metrics); |
1334 | spin_lock(&xprt->recv_lock); | 1334 | spin_lock(&xprt->recv_lock); |
1335 | if (!list_empty(&req->rq_list)) { | 1335 | if (!list_empty(&req->rq_list)) { |
1336 | list_del(&req->rq_list); | 1336 | list_del_init(&req->rq_list); |
1337 | xprt_wait_on_pinned_rqst(req); | 1337 | xprt_wait_on_pinned_rqst(req); |
1338 | } | 1338 | } |
1339 | spin_unlock(&xprt->recv_lock); | 1339 | spin_unlock(&xprt->recv_lock); |
@@ -1445,6 +1445,23 @@ out: | |||
1445 | return xprt; | 1445 | return xprt; |
1446 | } | 1446 | } |
1447 | 1447 | ||
1448 | static void xprt_destroy_cb(struct work_struct *work) | ||
1449 | { | ||
1450 | struct rpc_xprt *xprt = | ||
1451 | container_of(work, struct rpc_xprt, task_cleanup); | ||
1452 | |||
1453 | rpc_xprt_debugfs_unregister(xprt); | ||
1454 | rpc_destroy_wait_queue(&xprt->binding); | ||
1455 | rpc_destroy_wait_queue(&xprt->pending); | ||
1456 | rpc_destroy_wait_queue(&xprt->sending); | ||
1457 | rpc_destroy_wait_queue(&xprt->backlog); | ||
1458 | kfree(xprt->servername); | ||
1459 | /* | ||
1460 | * Tear down transport state and free the rpc_xprt | ||
1461 | */ | ||
1462 | xprt->ops->destroy(xprt); | ||
1463 | } | ||
1464 | |||
1448 | /** | 1465 | /** |
1449 | * xprt_destroy - destroy an RPC transport, killing off all requests. | 1466 | * xprt_destroy - destroy an RPC transport, killing off all requests. |
1450 | * @xprt: transport to destroy | 1467 | * @xprt: transport to destroy |
@@ -1454,22 +1471,19 @@ static void xprt_destroy(struct rpc_xprt *xprt) | |||
1454 | { | 1471 | { |
1455 | dprintk("RPC: destroying transport %p\n", xprt); | 1472 | dprintk("RPC: destroying transport %p\n", xprt); |
1456 | 1473 | ||
1457 | /* Exclude transport connect/disconnect handlers */ | 1474 | /* |
1475 | * Exclude transport connect/disconnect handlers and autoclose | ||
1476 | */ | ||
1458 | wait_on_bit_lock(&xprt->state, XPRT_LOCKED, TASK_UNINTERRUPTIBLE); | 1477 | wait_on_bit_lock(&xprt->state, XPRT_LOCKED, TASK_UNINTERRUPTIBLE); |
1459 | 1478 | ||
1460 | del_timer_sync(&xprt->timer); | 1479 | del_timer_sync(&xprt->timer); |
1461 | 1480 | ||
1462 | rpc_xprt_debugfs_unregister(xprt); | ||
1463 | rpc_destroy_wait_queue(&xprt->binding); | ||
1464 | rpc_destroy_wait_queue(&xprt->pending); | ||
1465 | rpc_destroy_wait_queue(&xprt->sending); | ||
1466 | rpc_destroy_wait_queue(&xprt->backlog); | ||
1467 | cancel_work_sync(&xprt->task_cleanup); | ||
1468 | kfree(xprt->servername); | ||
1469 | /* | 1481 | /* |
1470 | * Tear down transport state and free the rpc_xprt | 1482 | * Destroy sockets etc from the system workqueue so they can |
1483 | * safely flush receive work running on rpciod. | ||
1471 | */ | 1484 | */ |
1472 | xprt->ops->destroy(xprt); | 1485 | INIT_WORK(&xprt->task_cleanup, xprt_destroy_cb); |
1486 | schedule_work(&xprt->task_cleanup); | ||
1473 | } | 1487 | } |
1474 | 1488 | ||
1475 | static void xprt_destroy_kref(struct kref *kref) | 1489 | static void xprt_destroy_kref(struct kref *kref) |
diff --git a/net/sunrpc/xprtmultipath.c b/net/sunrpc/xprtmultipath.c index ae92a9e9ba52..e2d64c7138c3 100644 --- a/net/sunrpc/xprtmultipath.c +++ b/net/sunrpc/xprtmultipath.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * Multipath support for RPC | 3 | * Multipath support for RPC |
3 | * | 4 | * |
diff --git a/net/sunrpc/xprtrdma/Makefile b/net/sunrpc/xprtrdma/Makefile index b8213ddce2f2..8bf19e142b6b 100644 --- a/net/sunrpc/xprtrdma/Makefile +++ b/net/sunrpc/xprtrdma/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
1 | obj-$(CONFIG_SUNRPC_XPRT_RDMA) += rpcrdma.o | 2 | obj-$(CONFIG_SUNRPC_XPRT_RDMA) += rpcrdma.o |
2 | 3 | ||
3 | rpcrdma-y := transport.o rpc_rdma.o verbs.o \ | 4 | rpcrdma-y := transport.o rpc_rdma.o verbs.o \ |
diff --git a/net/sunrpc/xprtrdma/backchannel.c b/net/sunrpc/xprtrdma/backchannel.c index d31d0ac5ada9..823a781ec89c 100644 --- a/net/sunrpc/xprtrdma/backchannel.c +++ b/net/sunrpc/xprtrdma/backchannel.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * Copyright (c) 2015 Oracle. All rights reserved. | 3 | * Copyright (c) 2015 Oracle. All rights reserved. |
3 | * | 4 | * |
diff --git a/net/sunrpc/xprtrdma/fmr_ops.c b/net/sunrpc/xprtrdma/fmr_ops.c index 6c7151341194..fa759dd2b0f3 100644 --- a/net/sunrpc/xprtrdma/fmr_ops.c +++ b/net/sunrpc/xprtrdma/fmr_ops.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * Copyright (c) 2015 Oracle. All rights reserved. | 3 | * Copyright (c) 2015 Oracle. All rights reserved. |
3 | * Copyright (c) 2003-2007 Network Appliance, Inc. All rights reserved. | 4 | * Copyright (c) 2003-2007 Network Appliance, Inc. All rights reserved. |
diff --git a/net/sunrpc/xprtrdma/frwr_ops.c b/net/sunrpc/xprtrdma/frwr_ops.c index df062e086bdb..35d7517ef0e6 100644 --- a/net/sunrpc/xprtrdma/frwr_ops.c +++ b/net/sunrpc/xprtrdma/frwr_ops.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * Copyright (c) 2015 Oracle. All rights reserved. | 3 | * Copyright (c) 2015 Oracle. All rights reserved. |
3 | * Copyright (c) 2003-2007 Network Appliance, Inc. All rights reserved. | 4 | * Copyright (c) 2003-2007 Network Appliance, Inc. All rights reserved. |
diff --git a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c index ec37ad83b068..992594b7cc6b 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c +++ b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * Copyright (c) 2015 Oracle. All rights reserved. | 3 | * Copyright (c) 2015 Oracle. All rights reserved. |
3 | * | 4 | * |
diff --git a/net/sunrpc/xprtrdma/svc_rdma_rw.c b/net/sunrpc/xprtrdma/svc_rdma_rw.c index 7dcda4597057..9bd04549a1ad 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_rw.c +++ b/net/sunrpc/xprtrdma/svc_rdma_rw.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * Copyright (c) 2016 Oracle. All rights reserved. | 3 | * Copyright (c) 2016 Oracle. All rights reserved. |
3 | * | 4 | * |
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index c1841f234a71..4dad5da388d6 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * linux/net/sunrpc/xprtsock.c | 3 | * linux/net/sunrpc/xprtsock.c |
3 | * | 4 | * |