Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Kernel:HEAD:Backport:KMP
drbd
0005-drbd-Proper-locking-around-new_current_uui...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0005-drbd-Proper-locking-around-new_current_uuid-on-a-dis.patch of Package drbd
From c7384276634be7c5b49ef0b8d7fa064927a207f8 Mon Sep 17 00:00:00 2001 From: Philipp Reisner <philipp.reisner@linbit.com> Date: Wed, 14 Aug 2024 19:42:40 +0200 Subject: [PATCH 05/32] drbd: Proper locking around new_current_uuid on a diskless Like the current UUID of a diskful node, changing the exposed_uuid of a diskless node needs to be serialized with the UUID exchange when establishing new connections. --- drbd/drbd_main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drbd/drbd_main.c b/drbd/drbd_main.c index bc3283b045c9..2792b9896271 100644 --- a/drbd/drbd_main.c +++ b/drbd/drbd_main.c @@ -4827,7 +4827,10 @@ void drbd_uuid_new_current(struct drbd_device *device, bool forced) current_uuid |= UUID_PRIMARY; else current_uuid &= ~UUID_PRIMARY; + + down_write(&device->uuid_sem); drbd_uuid_set_exposed(device, current_uuid, false); + downgrade_write(&device->uuid_sem); drbd_info(device, "sending new current UUID: %016llX\n", current_uuid); weak_nodes = drbd_weak_nodes_device(device); @@ -4837,6 +4840,7 @@ void drbd_uuid_new_current(struct drbd_device *device, bool forced) peer_device->current_uuid = current_uuid; } } + up_read(&device->uuid_sem); } } -- 2.35.3
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