Skip to content

Commit d2297a2

Browse files
dhowellsgregkh
authored andcommitted
afs: Don't assert on unpurgeable server records
[ Upstream commit 7530d3e ] Don't give an assertion failure on unpurgeable afs_server records - which kills the thread - but rather emit a trace line when we are purging a record (which only happens during network namespace removal or rmmod) and print a notice of the problem. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 6b67737 commit d2297a2

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

fs/afs/server.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,12 @@ void afs_manage_servers(struct work_struct *work)
550550

551551
_debug("manage %pU %u", &server->uuid, active);
552552

553-
ASSERTIFCMP(purging, active, ==, 0);
553+
if (purging) {
554+
trace_afs_server(server, atomic_read(&server->ref),
555+
active, afs_server_trace_purging);
556+
if (active != 0)
557+
pr_notice("Can't purge s=%08x\n", server->debug_id);
558+
}
554559

555560
if (active == 0) {
556561
time64_t expire_at = server->unuse_time;

include/trace/events/afs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ enum afs_server_trace {
4040
afs_server_trace_get_new_cbi,
4141
afs_server_trace_get_probe,
4242
afs_server_trace_give_up_cb,
43+
afs_server_trace_purging,
4344
afs_server_trace_put_call,
4445
afs_server_trace_put_cbi,
4546
afs_server_trace_put_find_rsq,
@@ -270,6 +271,7 @@ enum afs_cb_break_reason {
270271
EM(afs_server_trace_get_new_cbi, "GET cbi ") \
271272
EM(afs_server_trace_get_probe, "GET probe") \
272273
EM(afs_server_trace_give_up_cb, "giveup-cb") \
274+
EM(afs_server_trace_purging, "PURGE ") \
273275
EM(afs_server_trace_put_call, "PUT call ") \
274276
EM(afs_server_trace_put_cbi, "PUT cbi ") \
275277
EM(afs_server_trace_put_find_rsq, "PUT f-rsq") \

0 commit comments

Comments
 (0)