[SRU][n][PATCH 0/2] Fix deadlock during suspending md raid

Philip Cox philip.cox at canonical.com
Tue Aug 20 18:01:43 UTC 2024


BugLink: https://bugs.launchpad.net/bugs/2073695


SRU Justification:

[Impact]
There is a possible deadlock when suspending a system with a MD RAID.

This deadlock was introduced via upstream commit 
fa2bbff7b0b4e211fec5e5686ef96350690597b5.

The deadlock was exposed while trying to fix another deadlock, so
this patchset contains two patches.  The first fixes the fix, and
the second fixes the new deadlock.  With these two patches, the
deadlock has been resolved, and the existing code was cleaned up.


[Fix]
Upstream commits:
   - 03e792eaf18ec2e93e2c623f9f1a4bdb97fe4126
   - 611d5cbc0b35a752e657a83eebadf40d814d006b

where used to resolve the deadlocks.  The first patch cleans up
some of the logic, and the second resolves the deadlock.

[Test Plan]
I have tested this patch.

[Where problems could occur]
As this code change touches the locking of the MD driver there 
is some risk of introducing new locking issues.  As this change
has been upstreamed for some time now, and has been back-ported
to some of the upstreeam stable kernels, I feel that risk is
fairly low.

--


Li Nan (2):
  md: change the return value type of md_write_start to void
  md: fix deadlock between mddev_suspend and flush bio

 drivers/md/md.c     | 40 +++++++++++++++++++---------------------
 drivers/md/md.h     |  2 +-
 drivers/md/raid1.c  |  3 +--
 drivers/md/raid10.c |  3 +--
 drivers/md/raid5.c  |  3 +--
 5 files changed, 23 insertions(+), 28 deletions(-)

-- 
2.34.1




More information about the kernel-team mailing list