Thread (5 messages) 5 messages, 2 authors, 2023-08-14

Re: [PATCH v6 0/3] md/raid1: call free_r1bio() before allow_barrier()

From: Song Liu <song@kernel.org>
Date: 2023-08-14 16:41:30

On Mon, Aug 14, 2023 at 9:54 PM Xueshi Hu [off-list ref] wrote:
Because raid reshape changes the r1conf::raid_disks and the mempool, it
orders that there's no in-flight r1bio when reshaping. However, the
current caller of allow_barrier() allows the reshape
operation to proceed even if the old r1bio requests have not been freed.
Applied v6 to md-next after updating some commit log.

Thanks,
Song
-> v2:
        - fix the problem one by one instead of calling
        blk_mq_freeze_queue() as suggested by Yu Kuai
-> v3:
        - add freeze_array_totally() to replace freeze_array() instead
          of gave up in raid1_reshape()
        - add a missed fix in raid_end_bio_io()
        - add a small check at the start of raid1_reshape()
-> v4:
        - add fix tag and revise the commit message
        - drop patch 1 as there is an ongoing systematic fix for the bug
        - drop patch 3 as it's unrelated which will be sent in
        another patch
-> v5:
        - split the patch into three parts, with each individual patch fix
        one bug.
-> v6:
        - drop the fix tag in patch 1.


Xueshi Hu (3):
  md/raid1: call free_r1bio() before allow_barrier()
  md/raid1: free the r1bio firstly before waiting for blocked rdev
  md/raid1: keep the barrier held until handle_read_error() finished

 drivers/md/raid1.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

--
2.40.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help