Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP5:Update
drbd
bsc-1197431-drbd-Fix-sending-peer-ack-into-a-fl...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bsc-1197431-drbd-Fix-sending-peer-ack-into-a-flapping-connection.patch of Package drbd
From ce6e875f9b021f6d1c4cce42d95339c306fd9512 Mon Sep 17 00:00:00 2001 From: Philipp Reisner <philipp.reisner@linbit.com> Date: Mon, 16 Jul 2018 17:54:48 +0200 Subject: [PATCH] drbd: Fix sending peer ack into a flapping connection When a connection is lost and returns quickly (before the peer_ack timer fired), we need to ensure to not send into the freshly established connection a peer ack from the "previous" connection. --- drbd/drbd_receiver.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drbd/drbd_receiver.c b/drbd/drbd_receiver.c index 00a19957..6b883dc6 100644 --- a/drbd/drbd_receiver.c +++ b/drbd/drbd_receiver.c @@ -8615,16 +8615,18 @@ static void cleanup_peer_ack_list(struct drbd_connection *connection) { struct drbd_resource *resource = connection->resource; struct drbd_request *req, *tmp; - int idx; + int idx = connection->peer_node_id; spin_lock_irq(&resource->req_lock); - idx = connection->peer_node_id; list_for_each_entry_safe(req, tmp, &resource->peer_ack_list, tl_requests) { if (!(req->net_rq_state[idx] & RQ_PEER_ACK)) continue; req->net_rq_state[idx] &= ~RQ_PEER_ACK; kref_put(&req->kref, destroy_request); } + req = resource->peer_ack_req; + if (req) + req->net_rq_state[idx] &= ~RQ_NET_SENT; spin_unlock_irq(&resource->req_lock); } -- 2.34.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor