lkml.org 
[lkml]   [2017]   [Feb]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/1] fs: Allows for the pivot_root syscall to be optional
    On Sat, 25 Feb 2017, Brian Ashworth wrote:

    > The pivot_root syscall is not needed on systems that do not use
    > any intermediate filesystem. Allowing for pivot_root to be
    > ommitted from the kernel will aid in the tinification efforts.
    >
    > Without CONFIG_PIVOT_ROOT_SYSCALL set
    > add/remove: 0/2 grow/shrink: 1/0 up/down: 45/-707 (-662)
    > function old new delta
    > attach_recursive_mnt 349 394 +45
    > attach_mnt 71 - -71
    > sys_pivot_root 636 - -636
    > Total: Before=1899893, After=1899231, chg -0.03%

    A -0.03% size difference doesn't seem much. To bring up a more
    realistic scenario for tinification statistics, you could start from
    "make tinyconfig" instead.

    > Signed-off-by: Brian Ashworth <bosrsf04@gmail.com>
    > ---
    > fs/namespace.c | 2 ++
    > init/Kconfig | 10 ++++++++++
    > kernel/sys_ni.c | 1 +
    > 3 files changed, 13 insertions(+)

    I agree that this is a much more interesting diffstat than the previous
    one.

    Acked-by: Nicolas Pitre <nico@linaro.org>


    > diff --git a/fs/namespace.c b/fs/namespace.c
    > index 487ba30bb5c6..5e24a08bfb36 100644
    > --- a/fs/namespace.c
    > +++ b/fs/namespace.c
    > @@ -3058,6 +3058,7 @@ bool path_is_under(const struct path *path1, const struct path *path2)
    > }
    > EXPORT_SYMBOL(path_is_under);
    >
    > +#ifdef CONFIG_PIVOT_ROOT_SYSCALL
    > /*
    > * pivot_root Semantics:
    > * Moves the root file system of the current process to the directory put_old,
    > @@ -3180,6 +3181,7 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
    > out0:
    > return error;
    > }
    > +#endif /* CONFIG_PIVOT_ROOT_SYSCALL */
    >
    > static void __init init_mount_tree(void)
    > {
    > diff --git a/init/Kconfig b/init/Kconfig
    > index 8c39615165b7..4ea9ab25ec30 100644
    > --- a/init/Kconfig
    > +++ b/init/Kconfig
    > @@ -1450,6 +1450,16 @@ config SYSCTL_SYSCALL
    >
    > If unsure say N here.
    >
    > +config PIVOT_ROOT_SYSCALL
    > + bool "Pivot_root syscall support" if EXPERT
    > + default y
    > + help
    > + pivot_root is a system call that allows the root to be moved and
    > + replaced by another root. This is needed for intermediate file
    > + systems such as initrd.
    > +
    > + If unsure say Y here.
    > +
    > config POSIX_TIMERS
    > bool "Posix Clocks & timers" if EXPERT
    > default y
    > diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c
    > index 8acef8576ce9..7bd207571f87 100644
    > --- a/kernel/sys_ni.c
    > +++ b/kernel/sys_ni.c
    > @@ -178,6 +178,7 @@ cond_syscall(sys_setfsgid);
    > cond_syscall(sys_capget);
    > cond_syscall(sys_capset);
    > cond_syscall(sys_copy_file_range);
    > +cond_syscall(sys_pivot_root);
    >
    > /* arch-specific weak syscall entries */
    > cond_syscall(sys_pciconfig_read);
    > --
    > 2.11.1
    >
    >

    \
     
     \ /
      Last update: 2017-02-26 02:42    [W:3.918 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site