No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Li Nan be48188175 md/raid10: fix io loss while replacement replace rdev
[ Upstream commit 2ae6aaf76912bae53c74b191569d2ab484f24bf3 ]

When removing a disk with replacement, the replacement will be used to
replace rdev. During this process, there is a brief window in which both
rdev and replacement are read as NULL in raid10_write_request(). This
will result in io not being submitted but it should be.

  //remove				//write
  raid10_remove_disk			raid10_write_request
   mirror->rdev = NULL
					 read rdev -> NULL
   mirror->rdev = mirror->replacement
   mirror->replacement = NULL
					 read replacement -> NULL

Fix it by reading replacement first and rdev later, meanwhile, use smp_mb()
to prevent memory reordering.

Fixes: 475b0321a4 ("md/raid10: writes should get directed to replacement as well as original.")
Signed-off-by: Li Nan <linan122@huawei.com>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/20230602091839.743798-3-linan666@huaweicloud.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-27 08:37:05 +02:00
arch x86/resctrl: Only show tasks' pid in current pid namespace 2023-07-27 08:37:04 +02:00
block block/blk-iocost (gcc13): keep large values in a new enum 2023-06-14 10:59:54 +02:00
certs certs/blacklist_hashes.c: fix const confusion in certs blacklist 2022-06-22 14:11:22 +02:00
crypto KEYS: asymmetric: Copy sig and digest in public_key_verify_signature() 2023-06-21 15:44:08 +02:00
Documentation Remove DECnet support from kernel 2023-06-21 15:44:10 +02:00
drivers md/raid10: fix io loss while replacement replace rdev 2023-07-27 08:37:05 +02:00
fs gfs2: Don't deref jdesc in evict 2023-07-27 08:37:03 +02:00
include rcu: Upgrade rcu_swap_protected() to rcu_replace_pointer() 2023-06-28 10:18:38 +02:00
init init/Kconfig: fix CC_HAS_ASM_GOTO_TIED_OUTPUT test with dash 2022-12-08 11:22:59 +01:00
ipc ipc/sem: Fix dangling sem_array access in semtimedop race 2022-12-08 11:23:06 +01:00
kernel cgroup: Do not corrupt task iteration when rebinding subsystem 2023-06-28 10:18:36 +02:00
lib test_firmware: fix a memory leak with reqs buffer 2023-06-21 15:44:08 +02:00
LICENSES
mm mm: make wait_on_page_writeback() wait for multiple pending writebacks 2023-06-28 10:18:42 +02:00
net sch_netem: acquire qdisc lock in netem_change() 2023-06-28 10:18:40 +02:00
samples samples/bpf: Fix fout leak in hbm's run_bpf_prog 2023-05-30 12:44:03 +01:00
scripts scripts/tags.sh: Resolve gtags empty index generation 2023-07-27 08:37:03 +02:00
security selinux: don't use make's grouped targets feature yet 2023-06-09 10:29:02 +02:00
sound ASoC: nau8824: Add quirk to active-high jack-detect 2023-06-28 10:18:41 +02:00
tools selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET 2023-06-21 15:44:12 +02:00
usr
virt KVM: Destroy target device if coalesced MMIO unregistration fails 2023-03-11 16:44:01 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Remove DECnet support from kernel 2023-06-21 15:44:10 +02:00
Makefile Linux 5.4.250 2023-07-24 19:10:53 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.