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-flush-not-yet-submitted-buffer...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bsc-1197431-drbd-flush-not-yet-submitted-buffers-before-becoming.patch of Package drbd
From 5631796686247c75e309eb11c25a8899ae1af868 Mon Sep 17 00:00:00 2001 From: Philipp Reisner <philipp.reisner@linbit.com> Date: Thu, 4 Oct 2018 10:23:12 +0200 Subject: [PATCH] drbd: flush not yet submitted buffers before becoming secondary While we had already everything in place to flush it out of DBRD, we where missing things that linger around in the page cache above us. Better flush that _before_ becoming secondary! Of course the only way to trigger this is by using auto-promote. In particular I was using auto-promote on a diskless node to trigger the bug that inspired this change. [26783.745591] drbd r0: role( Secondary -> Primary ) [26783.764158] drbd r0: role( Primary -> Secondary ) [26783.883627] drbd r0/0 drbd9: sending new current UUID: F7BBB1B405EE375E --- drbd/drbd_nl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drbd/drbd_nl.c b/drbd/drbd_nl.c index 9fd2477a..74347e7b 100644 --- a/drbd/drbd_nl.c +++ b/drbd/drbd_nl.c @@ -978,8 +978,10 @@ retry: request_ping(connection); rcu_read_unlock(); } else /* (role == R_SECONDARY) */ { - idr_for_each_entry(&resource->devices, device, vnr) + idr_for_each_entry(&resource->devices, device, vnr) { + fsync_bdev(device->this_bdev); flush_workqueue(device->submit.wq); + } if (start_new_tl_epoch(resource)) { struct drbd_connection *connection; -- 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