public inbox for linux-raid@vger.kernel.org
 help / color / mirror / Atom feed
From: "Yu Kuai" <yukuai@fnnas.com>
To: "FengWei Shih" <dannyshih@synology.com>, <song@kernel.org>,
	 <yukuai@fnnas.com>
Cc: <linan122@huawei.com>, <linux-raid@vger.kernel.org>,
	 <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] md/raid5: skip 2-failure compute when other disk is R5_LOCKED
Date: Mon, 23 Mar 2026 02:31:25 +0800	[thread overview]
Message-ID: <52b28767-c272-4ace-9082-648976ca6a20@fnnas.com> (raw)
In-Reply-To: <20260319053351.3676794-1-dannyshih@synology.com>

在 2026/3/19 13:33, FengWei Shih 写道:

> When skip_copy is enabled on a doubly-degraded RAID6, a device that is
> being written to will be in R5_LOCKED state with R5_UPTODATE cleared.
> If a new read triggers fetch_block() while the write is still in
> flight, the 2-failure compute path may select this locked device as a
> compute target because it is not R5_UPTODATE.
>
> Because skip_copy makes the device page point directly to the bio page,
> reconstructing data into it might be risky. Also, since the compute
> marks the device R5_UPTODATE, it triggers WARN_ON in ops_run_io()
> which checks that R5_SkipCopy and R5_UPTODATE are not both set.
>
> This can be reproduced by running small-range concurrent read/write on
> a doubly-degraded RAID6 with skip_copy enabled, for example:
>
>    mdadm -C /dev/md0 -l6 -n6 -R -f /dev/loop[0-3] missing missing
>    echo 1 > /sys/block/md0/md/skip_copy
>    fio --filename=/dev/md0 --rw=randrw --bs=4k --numjobs=8 \
>        --iodepth=32 --size=4M --runtime=30 --time_based --direct=1
>
> Fix by checking R5_LOCKED before proceeding with the compute. The
> compute will be retried once the lock is cleared on IO completion.
>
> Signed-off-by: FengWei Shih<dannyshih@synology.com>
> ---
>   drivers/md/raid5.c | 2 ++
>   1 file changed, 2 insertions(+)
Applied

-- 
Thansk,
Kuai

      parent reply	other threads:[~2026-03-22 18:31 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-19  5:33 [PATCH] md/raid5: skip 2-failure compute when other disk is R5_LOCKED FengWei Shih
2026-03-20  4:04 ` Yu Kuai
2026-03-22 18:31 ` Yu Kuai [this message]

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=52b28767-c272-4ace-9082-648976ca6a20@fnnas.com \
    --to=yukuai@fnnas.com \
    --cc=dannyshih@synology.com \
    --cc=linan122@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=song@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