[PATCH 0/2] ocfs2: harden heartbeat teardown races

From: Cen Zhang

Date: Wed Jun 24 2026 - 05:54:40 EST


Hi,

This series fixes two OCFS2 heartbeat/o2net teardown races found by
KASAN.

This series is based on my earlier patch:

[PATCH v2] ocfs2/cluster: keep heartbeat local node stable

That patch has been queued in Andrew's -mm tree as:

ocfs2-cluster-keep-heartbeat-local-node-stable.patch

It is needed as the base because this series uses the stable per-region
heartbeat node number from that patch instead of re-reading
o2nm_this_node() during teardown.

Patch 1 stops heartbeat callbacks from queuing o2net reconnect and
disconnect work after local o2net teardown has started, while still
keeping the callbacks registered for quorum state.

Patch 2 keeps a heartbeat region non-armable while it is starting or
stopping, unregisters negotiate handlers before tearing down state they
can reach, and waits for the active or destroying o2net ordered
workqueue before freeing the region.

Thanks,
Cen

Cen Zhang (2):
ocfs2: synchronize heartbeat callbacks with o2net teardown
ocfs2: o2hb: quiesce negotiate handlers and timeout work

fs/ocfs2/cluster/heartbeat.c | 99 ++++++++++++++----
fs/ocfs2/cluster/heartbeat.h | 5 +
fs/ocfs2/cluster/nodemanager.c | 4 +
fs/ocfs2/cluster/tcp.c | 186 +++++++++++++++++++++++++++------
fs/ocfs2/cluster/tcp.h | 2 +
5 files changed, 247 insertions(+), 49 deletions(-)

--
2.43.0