Go to file
Amir Goldstein a8187a9ca2 ovl: make use of ->layers safe in rcu pathwalk
[ Upstream commit a535116d80 ]

ovl_permission() accesses ->layers[...].mnt; we can't have ->layers
freed without an RCU delay on fs shutdown.

Fortunately, kern_unmount_array() that is used to drop those mounts
does include an RCU delay, so freeing is delayed; unfortunately, the
array passed to kern_unmount_array() is formed by mangling ->layers
contents and that happens without any delays.

The ->layers[...].name string entries are used to store the strings to
display in "lowerdir=..." by ovl_show_options().  Those entries are not
accessed in RCU walk.

Move the name strings into a separate array ofs->config.lowerdirs and
reuse the ofs->config.lowerdirs array as the temporary mount array to
pass to kern_unmount_array().

Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lore.kernel.org/r/20231002023711.GP3389589@ZenIV/
Acked-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Stable-dep-of: 32db510708 ("ovl: fix regression in showing lowerdir mount option")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-10-19 23:11:08 +02:00
arch powerpc/64e: Fix wrong test in __ptep_test_and_clear_young() 2023-10-19 23:11:08 +02:00
block block: Don't invalidate pagecache for invalid falloc modes 2023-10-19 23:11:06 +02:00
certs KEYS: Add missing function documentation 2023-04-24 16:15:52 +03:00
crypto crypto: sm2 - Fix crash caused by uninitialized context 2023-10-06 13:16:21 +02:00
Documentation dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Update description for '#interrupt-cells' property 2023-10-19 23:10:57 +02:00
drivers dmaengine: mediatek: Fix deadlock caused by synchronize_irq() 2023-10-19 23:11:08 +02:00
fs ovl: make use of ->layers safe in rcu pathwalk 2023-10-19 23:11:08 +02:00
include fs: factor out vfs_parse_monolithic_sep() helper 2023-10-19 23:11:08 +02:00
init sched/psi: Select KERNFS as needed 2023-09-13 09:52:59 +02:00
io_uring io_uring: ensure io_lockdep_assert_cq_locked() handles disabled rings 2023-10-10 22:02:57 +02:00
ipc Merge branch 'work.namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2023-02-24 19:20:07 -08:00
kernel cgroup: Remove duplicates in cgroup v1 tasks file 2023-10-19 23:11:06 +02:00
lib maple_tree: add MAS_UNDERFLOW and MAS_OVERFLOW states 2023-10-10 22:02:55 +02:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm mm, memcg: reconsider kmem.limit_in_bytes deprecation 2023-10-06 13:16:30 +02:00
net mctp: perform route lookups under a RCU read-side lock 2023-10-19 23:11:06 +02:00
rust rust: macros: vtable: fix HAS_* redefinition (gen_const_name) 2023-08-09 21:15:07 +02:00
samples samples/hw_breakpoint: fix building without module unloading 2023-09-23 11:14:33 +02:00
scripts modpost: add missing else to the "of" check 2023-10-10 22:03:01 +02:00
security KEYS: trusted: Remove redundant static calls usage 2023-10-19 23:10:57 +02:00
sound ALSA: hda/realtek - ALC287 merge RTK codec with CS CS35L41 AMP 2023-10-19 23:10:58 +02:00
tools netfilter: nf_tables: Deduplicate nft_register_obj audit logs 2023-10-10 22:03:03 +02:00
usr initramfs: Encode dependency on KBUILD_BUILD_TIMESTAMP 2023-06-06 17:54:49 +09:00
virt kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add() 2023-09-13 09:53:29 +02:00
.clang-format iommu: Add for_each_group_device() 2023-05-23 08:15:51 +02:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore Revert ".gitignore: ignore *.cover and *.mbx" 2023-07-04 15:05:12 -07:00
.mailmap mailmap: add entries for Simon Horman 2023-08-16 09:53:10 +01:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS - Address -Wmissing-prototype warnings 2023-06-26 16:43:54 -07:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS sound fixes for 6.5 2023-08-25 08:48:14 -07:00
Makefile Linux 6.5.7 2023-10-10 22:03:06 +02:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

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.