[lustre-devel] [PATCH 10/20] lustre: ptlrpc: add assert for ptlrpc_service_purge_all
James Simmons <[email protected]>
| Newsgroups | org.lustre.lists.lustre-devel |
|---|---|
| Message-ID | <[email protected]> |
From: Etienne AUJAMES <[email protected]> ptlrpc_service_purge_all() calls ptlrpc_server_request_get() with "force=true" to purge all active requests before stopping an NRS policy (when unregistering a service). "force" mode should always return a request if a pending request is present in the NRS policy. BUG: unable to handle kernel NULL pointer dereference at 0000000000000114 IP: [<ffffffffc0d9e965>] ptlrpc_nrs_req_stop_nolock+0x5/0x150 ..... ? ptlrpc_server_finish_active_request+0x2b/0x140 [ptlrpc] ptlrpc_service_purge_all+0x137/0x920 [ptlrpc] ptlrpc_unregister_service+0xe7/0x6f0 [ptlrpc] ost_cleanup+0x52/0x1b0 [ost] class_free_dev+0x21d/0x720 [obdclass] class_export_put+0x1f0/0x2c0 [obdclass] class_unlink_export+0x135/0x170 [obdclass] class_decref+0x80/0x160 [obdclass] class_detach+0x1b3/0x2e0 [obdclass] class_process_config+0x1a38/0x2830 [obdclass] ? complete+0x4a/0x60 ? list_del+0xd/0x30 ? wait_for_completion+0x4e/0x140 class_manual_cleanup+0x1e0/0x710 [obdclass] server_stop_servers+0xd5/0x160 [obdclass] server_put_super+0x12d/0xd00 [obdclass] generic_shutdown_super+0x6d/0x100 WC-bug-id: https://jira.whamcloud.com/browse/LU-16144 Lustre-commit: 1bba7dd425d3fc9ef3 ("LU-16144 nrs: implement force mode for nrs_tbf_req_get()") Signed-off-by: Etienne AUJAMES <[email protected]> Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/48494 Reviewed-by: Nikitas Angelinas <[email protected]> Reviewed-by: Andreas Dilger <[email protected]> Reviewed-by: Oleg Drokin <[email protected]> Signed-off-by: James Simmons <[email protected]> --- fs/lustre/ptlrpc/service.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/lustre/ptlrpc/service.c b/fs/lustre/ptlrpc/service.c index 59fe1f4aa18f..aaf7529e25f3 100644 --- a/fs/lustre/ptlrpc/service.c +++ b/fs/lustre/ptlrpc/service.c @@ -2939,6 +2939,7 @@ ptlrpc_service_purge_all(struct ptlrpc_service *svc) while (ptlrpc_server_request_pending(svcpt, true)) { req = ptlrpc_server_request_get(svcpt, true); + LASSERT(req); ptlrpc_server_finish_active_request(svcpt, req); } -- 2.27.0 _______________________________________________ lustre-devel mailing list [email protected] http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org