From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752066AbdBZBlz (ORCPT ); Sat, 25 Feb 2017 20:41:55 -0500 Received: from mail-io0-f176.google.com ([209.85.223.176]:33709 "EHLO mail-io0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751889AbdBZBly (ORCPT ); Sat, 25 Feb 2017 20:41:54 -0500 Date: Sat, 25 Feb 2017 20:14:52 -0500 (EST) From: Nicolas Pitre To: Brian Ashworth cc: Alexander Viro , Andrew Morton , Kees Cook , Arnd Bergmann , Ingo Molnar , Ard Biesheuvel , Andy Lutomirski , Petr Mladek , Helge Deller , Rik van Riel , Thomas Garnier , Parav Pandit , "seokhoon . yoon" , Thomas Gleixner , Dave Hansen , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, josh@joshtriplett.org, brkkurek192@gmail.com, conorcurry@gmail.com, fanofbond138@gmail.com Subject: Re: [PATCH 1/1] fs: Allows for the pivot_root syscall to be optional In-Reply-To: <06c7c949626acd419d77d611a65ca5427d6cf866.1488054759.git.bosrsf04@gmail.com> Message-ID: References: <06c7c949626acd419d77d611a65ca5427d6cf866.1488054759.git.bosrsf04@gmail.com> User-Agent: Alpine 2.20 (LFD 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > --- > 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 > 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 > >