Go to file
Christian Brauner 42815808f1
timens: make vdso_join_timens() always succeed
As discussed on-list (cf. [1]), in order to make setns() support time
namespaces when attaching to multiple namespaces at once properly we
need to tweak vdso_join_timens() to always succeed. So switch
vdso_join_timens() to using a read lock and replacing
mmap_write_lock_killable() to mmap_read_lock() as we discussed.

Last cycle setns() was changed to support attaching to multiple namespaces
atomically. This requires all namespaces to have a point of no return where
they can't fail anymore. Specifically, <namespace-type>_install() is
allowed to perform permission checks and install the namespace into the new
struct nsset that it has been given but it is not allowed to make visible
changes to the affected task. Once <namespace-type>_install() returns
anything that the given namespace type requires to be setup in addition
needs to ideally be done in a function that can't fail or if it fails the
failure is not fatal. For time namespaces the relevant functions that fall
into this category are timens_set_vvar_page() and vdso_join_timens().
Currently the latter can fail but doesn't need to. With this we can go on
to implement a timens_commit() helper in a follow up patch to be used by
setns().

[1]: https://lore.kernel.org/lkml/20200611110221.pgd3r5qkjrjmfqa2@wittgenstein

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Reviewed-by: Andrei Vagin <avagin@gmail.com>
Cc: Will Deacon <will@kernel.org>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Dmitry Safonov <dima@arista.com>
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20200706154912.3248030-2-christian.brauner@ubuntu.com
2020-07-08 11:14:21 +02:00
arch timens: make vdso_join_timens() always succeed 2020-07-08 11:14:21 +02:00
block block-5.8-2020-07-05 2020-07-05 10:45:31 -07:00
certs
crypto crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock() 2020-06-18 17:09:54 +10:00
Documentation Kbuild fixes for v5.8 (2nd) 2020-07-05 12:14:24 -07:00
drivers A set of interrupt chip driver fixes: 2020-07-05 12:22:35 -07:00
fs io_uring-5.8-2020-07-05 2020-07-05 10:41:33 -07:00
include pci-v5.8-fixes-1 2020-07-03 12:14:51 -07:00
init kbuild: fix CONFIG_CC_CAN_LINK(_STATIC) for cross-compilation with Clang 2020-07-02 00:57:45 +09:00
ipc mmap locking API: use coccinelle to convert mmap_sem rwsem call sites 2020-06-09 09:39:14 -07:00
kernel timens: make vdso_join_timens() always succeed 2020-07-08 11:14:21 +02:00
lib Peter Zijlstra says: 2020-06-28 09:42:47 -07:00
LICENSES
mm mm/page_alloc: fix documentation error 2020-07-03 16:15:25 -07:00
net Fixes for a umask bug on exported filesystems lacking ACL support, a 2020-07-02 20:35:33 -07:00
samples samples/vfs: avoid warning in statx override 2020-07-03 16:15:25 -07:00
scripts Kbuild fixes for v5.8 (2nd) 2020-07-05 12:14:24 -07:00
security Two simple fixes for v5.8: 2020-06-30 12:21:53 -07:00
sound sound fixes for 5.8-rc3 2020-06-25 09:15:24 -07:00
tools A series of fixes for x86: 2020-07-05 12:23:49 -07:00
usr
virt MIPS: 2020-06-12 11:05:52 -07:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore .gitignore: Do not track defconfig from make savedefconfig 2020-07-05 16:15:46 +09:00
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Devicetree fixes for v5.8, take 2: 2020-07-02 22:46:05 -07:00
Makefile Linux 5.8-rc4 2020-07-05 16:20:22 -07: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.