From: Philipp Reisner <philipp.reisner@linbit.com>
To: linux-kernel@vger.kernel.org, Jens Axboe <axboe@kernel.dk>
Cc: drbd-dev@lists.linbit.com
Subject: [PATCH 11/18] drbd: re-add lost conf_mutex protection in drbd_set_role
Date: Mon, 30 Jun 2014 17:53:00 +0200 [thread overview]
Message-ID: <1404143587-24344-12-git-send-email-philipp.reisner@linbit.com> (raw)
In-Reply-To: <1404143587-24344-1-git-send-email-philipp.reisner@linbit.com>
From: Lars Ellenberg <lars.ellenberg@linbit.com>
The conf_update mutex used to be held while clearing the
net_conf->discard_my_data flag inside drbd_set_role.
It was moved into drbd_adm_set_role with
drbd: allow parallel promote/demote actions
but then replaced at that location by the newly introduced adm_mutex with
drbd: Fix a potential deadlock in drbdsetup, introduce resource->adm_mutex
And I simply forgot to put it back in at the original location.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
---
drivers/block/drbd/drbd_nl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 133e9b3..23670d8 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -661,11 +661,11 @@ drbd_set_role(struct drbd_device *const device, enum drbd_role new_role, int for
put_ldev(device);
}
} else {
- /* Called from drbd_adm_set_role only.
- * We are still holding the conf_update mutex. */
+ mutex_lock(&device->resource->conf_update);
nc = connection->net_conf;
if (nc)
nc->discard_my_data = 0; /* without copy; single bit op is atomic */
+ mutex_unlock(&device->resource->conf_update);
set_disk_ro(device->vdisk, false);
if (get_ldev(device)) {
--
1.9.1
next prev parent reply other threads:[~2014-06-30 15:57 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-30 15:52 [PATCH 00/18] RFC DRBD fixes Philipp Reisner
2014-06-30 15:52 ` [PATCH 01/18] drbd: Move write_ordering from connection to resource Philipp Reisner
2014-06-30 15:52 ` [PATCH 02/18] drbd: device->ldev is not guaranteed on an D_ATTACHING disk Philipp Reisner
2014-06-30 15:52 ` [PATCH 03/18] drbd: rename drbd_free_bc() to drbd_free_ldev() Philipp Reisner
2014-06-30 15:52 ` [PATCH 04/18] drbd: reduce number of spinlock drop/re-aquire cycles Philipp Reisner
2014-06-30 15:52 ` [PATCH 05/18] drbd: refactor use of first_peer_device() Philipp Reisner
2014-06-30 15:52 ` [PATCH 06/18] drbd: allow write-ordering policy to be bumped up again Philipp Reisner
2014-06-30 15:52 ` [PATCH 07/18] drbd: get rid of atomic update on disk bitmap works Philipp Reisner
2014-06-30 15:52 ` [PATCH 08/18] drbd: fix a race stopping the worker thread Philipp Reisner
2014-06-30 15:52 ` [PATCH 09/18] drbd: fix resync finished detection Philipp Reisner
2014-06-30 15:52 ` [PATCH 10/18] drbd: stop the meta data sync timer before open coded meta data sync Philipp Reisner
2014-06-30 15:53 ` Philipp Reisner [this message]
2014-06-30 15:53 ` [PATCH 12/18] drbd: trigger tcp_push_pending_frames() for PING and PING_ACK Philipp Reisner
2014-06-30 15:53 ` [PATCH 13/18] drbd: move set_disk_ro() to after we persisted the new role Philipp Reisner
2014-06-30 15:53 ` [PATCH 14/18] drbd: explicitly submit meta data requests with REQ_NOIDLE Philipp Reisner
2014-06-30 15:53 ` [PATCH 15/18] drbd: close race when detaching from disk Philipp Reisner
2014-06-30 15:53 ` [PATCH 16/18] drbd: make sure disk cleanup happens in worker context Philipp Reisner
2014-06-30 15:53 ` [PATCH 17/18] drbd: use drbd_device_post_work() in more places Philipp Reisner
2014-06-30 15:53 ` [PATCH 18/18] drbd: get rid of drbd_queue_work_front Philipp Reisner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1404143587-24344-12-git-send-email-philipp.reisner@linbit.com \
--to=philipp.reisner@linbit.com \
--cc=axboe@kernel.dk \
--cc=drbd-dev@lists.linbit.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®