From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751556AbWDARCY (ORCPT ); Sat, 1 Apr 2006 12:02:24 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751557AbWDARCY (ORCPT ); Sat, 1 Apr 2006 12:02:24 -0500 Received: from pentafluge.infradead.org ([213.146.154.40]:1739 "EHLO pentafluge.infradead.org") by vger.kernel.org with ESMTP id S1751555AbWDARCX (ORCPT ); Sat, 1 Apr 2006 12:02:23 -0500 Date: Sat, 1 Apr 2006 18:02:20 +0100 From: Christoph Hellwig To: Christoph Hellwig , Linus Torvalds , Andrew Morton , Al Viro , Linux Kernel ML Subject: Re: [PATCH 2/6] vfs: propagate mnt_flags into do_loopback/vfsmount Message-ID: <20060401170220.GA3940@infradead.org> Mail-Followup-To: Christoph Hellwig , Linus Torvalds , Andrew Morton , Al Viro , Linux Kernel ML References: <20060121083843.GA10044@MAIL.13thfloor.at> <20060121084055.GC10044@MAIL.13thfloor.at> <20060124190256.GA14201@infradead.org> <20060127200304.GB16752@MAIL.13thfloor.at> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20060127200304.GB16752@MAIL.13thfloor.at> User-Agent: Mutt/1.4.2.1i X-SRS-Rewrite: SMTP reverse-path rewritten from by pentafluge.infradead.org See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 27, 2006 at 09:03:04PM +0100, Herbert Poetzl wrote: > Andrew, Linus any reason this still isn't in? -- From: Herbert P?tzl the mnt_flags are propagated into do_loopback(), so that they can be stored with the vfsmount Signed-off-by: Herbert P?tzl Acked-by: Christoph Hellwig diff -NurpP --minimal linux-2.6.16-rc1/fs/namespace.c linux-2.6.16-rc1-bme0.06.2-lo0.01/fs/namespace.c --- linux-2.6.16-rc1/fs/namespace.c 2006-01-18 06:08:30 +0100 +++ linux-2.6.16-rc1-bme0.06.2-lo0.01/fs/namespace.c 2006-01-21 09:08:29 +0100 @@ -861,11 +861,13 @@ static int do_change_type(struct nameida /* * do loopback mount. */ -static int do_loopback(struct nameidata *nd, char *old_name, int recurse) +static int do_loopback(struct nameidata *nd, char *old_name, unsigned long flags, int mnt_flags) { struct nameidata old_nd; struct vfsmount *mnt = NULL; + int recurse = flags & MS_REC; int err = mount_is_safe(nd); + if (err) return err; if (!old_name || !*old_name) @@ -899,6 +901,7 @@ static int do_loopback(struct nameidata spin_unlock(&vfsmount_lock); release_mounts(&umount_list); } + mnt->mnt_flags = mnt_flags; out: up_write(&namespace_sem); @@ -1312,7 +1315,7 @@ long do_mount(char *dev_name, char *dir_ retval = do_remount(&nd, flags & ~MS_REMOUNT, mnt_flags, data_page); else if (flags & MS_BIND) - retval = do_loopback(&nd, dev_name, flags & MS_REC); + retval = do_loopback(&nd, dev_name, flags, mnt_flags); else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE)) retval = do_change_type(&nd, flags); else if (flags & MS_MOVE)