[GIT PULL] remove ksys_mount() and ksys_dup()

From: Dominik Brodowski
Date: Thu Dec 12 2019 - 13:14:50 EST

The following changes since commit ae4b064e2a616b545acf02b8f50cc513b32c7522:

Merge tag 'afs-fixes-20191211' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs (2019-12-11 18:10:40 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux.git remove-ksys-mount-dup

for you to fetch changes up to 8243186f0cc7c57cf9d6a110cd7315c44e3e0be8:

fs: remove ksys_dup() (2019-12-12 19:00:36 +0100)

This small series replaces all in-kernel calls to the
userspace-focused ksys_mount() and ksys_dup() with calls
to kernel-centric functions:

For each replacement of ksys_mount() with do_mount(),
one needs to verify that the first and third parameter
(char *dev_name, char *type) are strings allocated in
kernelspace and that the fifth parameter (void *data)
is either NULL or refers to a full page (only occurence
in init/do_mounts.c::do_mount_root()). The second and
fourth parameters (char *dir_name, unsigned long flags)
are passed by ksys_mount() to do_mount() unchanged, and
therefore do not require particular care.

Moreover, instead of pretending to be userspace, the opening
of /dev/console as stdin/stdout/stderr can be implemented
using in-kernel functions as well. Thereby, ksys_dup() can
be removed for good.


Changes since the split-series patches[1,2]:
- merge both series (on suggestion by Linus)
- remove pointless cast (on suggestion by Linus)

[1] https://lore.kernel.org/lkml/20191212135724.331342-1-linux@xxxxxxxxxxxxxxxxxxxx/
[2] https://lore.kernel.org/lkml/20191212140752.347520-1-linux@xxxxxxxxxxxxxxxxxxxx/


Dominik Brodowski (5):
devtmpfs: use do_mount() instead of ksys_mount()
initrd: use do_mount() instead of ksys_mount()
init: use do_mount() instead of ksys_mount()
init: unify opening /dev/console as stdin/stdout/stderr
fs: remove ksys_dup()

drivers/base/devtmpfs.c | 6 +++---
fs/file.c | 7 +------
fs/namespace.c | 10 ++--------
include/linux/device.h | 4 ++--
include/linux/initrd.h | 2 ++
include/linux/syscalls.h | 3 ---
init/do_mounts.c | 30 +++++++++++++++++++++++-------
init/do_mounts_initrd.c | 11 ++++-------
init/main.c | 31 ++++++++++++++++++++++++++-----
9 files changed, 63 insertions(+), 41 deletions(-)