Skip to contentSkip to conversation

Patch "md-cluster: fix wrong condition check in raid1_write_request" has been added to the 4.14-stable tree

PATCH [email protected] 1 participant 1 message Dec 18, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

md-cluster: fix wrong condition check in raid1_write_request

to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
md-cluster-fix-wrong-condition-check-in-raid1_write_request.patch
and it can be found in the queue-4.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Mon Dec 18 13:29:00 CET 2017

From: Guoqing Jiang <[email protected]>
Date: Fri, 29 Sep 2017 09:16:43 +0800
Subject: md-cluster: fix wrong condition check in raid1_write_request

From: Guoqing Jiang <[email protected]>

[ Upstream commit 385f4d7f946b08f36f68b0a28e95a319925b6b62 ]

The check used here is to avoid conflict between write and resync, however we used the wrong logic, it should be the inverse of the checking inside "if".

Fixes 589a1c4 ("Suspend writes in RAID1 if within range")
---
 drivers/md/raid1.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
drivers/md/raid1.c +5 -5
@@ -1309,12 +1309,12 @@ static void raid1_write_request(struct m
 			sigset_t full, old;
 			prepare_to_wait(&conf->wait_barrier,
 					&w, TASK_INTERRUPTIBLE);
-			if (bio_end_sector(bio) <= mddev->suspend_lo ||
-			    bio->bi_iter.bi_sector >= mddev->suspend_hi ||
-			    (mddev_is_clustered(mddev) &&
+			if ((bio_end_sector(bio) <= mddev->suspend_lo ||
+			     bio->bi_iter.bi_sector >= mddev->suspend_hi) &&
+			    (!mddev_is_clustered(mddev) ||
 			     !md_cluster_ops->area_resyncing(mddev, WRITE,
-				     bio->bi_iter.bi_sector,
-				     bio_end_sector(bio))))
+							bio->bi_iter.bi_sector,
+							bio_end_sector(bio))))
 				break;
 			sigfillset(&full);
 			sigprocmask(SIG_BLOCK, &full, &old);

Patches currently in stable-queue which might be from [email protected] are

queue-4.14/badblocks-fix-wrong-return-value-in-badblocks_set-if-badblocks-are-disabled.patch queue-4.14/md-cluster-fix-wrong-condition-check-in-raid1_write_request.patch