All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <haveblue@us.ibm.com>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: akpm@linux-foundation.org, hch@infradead.org, serue@us.ibm.com,
	viro@ftp.linux.org.uk, ebiederm@xmission.com, kzak@redhat.com,
	linux-fsdevel@vger.kernel.org, containers@lists.osdl.org,
	util-linux-ng@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [patch 5/9] unprivileged mounts: allow unprivileged bind mounts
Date: Tue, 08 Jan 2008 10:26:26 -0800	[thread overview]
Message-ID: <1199816786.9834.70.camel@localhost> (raw)
In-Reply-To: <20080108113626.895583537@szeredi.hu>

On Tue, 2008-01-08 at 12:35 +0100, Miklos Szeredi wrote:
> @@ -510,10 +533,16 @@ static struct vfsmount *clone_mnt(struct
>                                         int flag)
>  {
>         struct super_block *sb = old->mnt_sb;
> -       struct vfsmount *mnt = alloc_vfsmnt(old->mnt_devname);
> +       struct vfsmount *mnt;
> 
> +       if (flag & CL_SETUSER) {
> +               int err = reserve_user_mount();
> +               if (err)
> +                       return ERR_PTR(err);
> +       }
> +       mnt = alloc_vfsmnt(old->mnt_devname);
>         if (!mnt)
> -               return ERR_PTR(-ENOMEM);
> +               goto alloc_failed;
> 
>         mnt->mnt_flags = old->mnt_flags;
>         atomic_inc(&sb->s_active); 

I think there's a little race here.  We could have several users racing
to get to this point when nr_user_mounts==max_user_mounts-1.  One user
wins the race and gets their mount reserved.  The others get the error
out of reserve_user_mount(), and return.

But, the winner goes on to error out on some condition further down in
clone_mnt() and never actually instantiates the mount.

Do you think this is a problem?

I think just about the one solution is to block new mounters on a
sleepable lock until the race winner actually finishes their mount
operation.  

-- Dave


  parent reply	other threads:[~2008-01-08 18:26 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-08 11:35 [patch 0/9] mount ownership and unprivileged mount syscall (v6) Miklos Szeredi
2008-01-08 11:35 ` [patch 1/9] unprivileged mounts: add user mounts to the kernel Miklos Szeredi
2008-01-08 21:34   ` Pavel Machek
     [not found]   ` <20080108113619.213519920-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
2008-01-08 21:47     ` Pavel Machek
2008-01-08 21:47       ` Pavel Machek
2008-01-14 21:46   ` Serge E. Hallyn
2008-01-08 11:35 ` [patch 2/9] unprivileged mounts: allow unprivileged umount Miklos Szeredi
     [not found]   ` <20080108113620.664824939-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
2008-01-14 21:48     ` Serge E. Hallyn
2008-01-14 21:48       ` Serge E. Hallyn
2008-01-08 11:35 ` [patch 3/9] unprivileged mounts: account user mounts Miklos Szeredi
     [not found]   ` <20080108113623.446872155-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
2008-01-08 18:18     ` Dave Hansen
2008-01-08 18:18       ` Dave Hansen
2008-01-08 19:18       ` Miklos Szeredi
2008-01-08 19:18         ` Miklos Szeredi
2008-01-14 21:53   ` Serge E. Hallyn
2008-01-08 11:35 ` [patch 4/9] unprivileged mounts: propagate error values from clone_mnt Miklos Szeredi
     [not found]   ` <20080108113624.898035951-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
2008-01-14 22:23     ` Serge E. Hallyn
2008-01-14 22:23       ` Serge E. Hallyn
2008-01-15 10:15       ` Miklos Szeredi
2008-01-15 10:15         ` Miklos Szeredi
2008-01-08 11:35 ` [patch 5/9] unprivileged mounts: allow unprivileged bind mounts Miklos Szeredi
2008-01-08 18:12   ` Dave Hansen
2008-01-08 19:08     ` Miklos Szeredi
     [not found]       ` <E1JCJoQ-0003g9-Nk-8f8m9JG5TPIdUIPVzhDTVZP2KDSNp7ea@public.gmane.org>
2008-01-08 19:15         ` Dave Hansen
2008-01-08 19:15           ` Dave Hansen
2008-01-08 20:44         ` Szabolcs Szakacsits
2008-01-08 20:44           ` Szabolcs Szakacsits
2008-01-09 12:45         ` Jan Engelhardt
2008-01-09 12:45           ` Jan Engelhardt
     [not found]           ` <Pine.LNX.4.64.0801091340270.29244-vVwEwcwQeYFPkBl3ERsXe1l1cybopEuJUBSOeVevoDU@public.gmane.org>
2008-01-09 13:26             ` Karel Zak
2008-01-09 13:26               ` Karel Zak
2008-01-09 13:32               ` Miklos Szeredi
2008-01-08 18:26   ` Dave Hansen [this message]
2008-01-08 19:21     ` Miklos Szeredi
2008-01-08 19:21       ` Miklos Szeredi
     [not found]   ` <20080108113626.895583537-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
2008-01-10  4:47     ` Serge E. Hallyn
2008-01-10  4:47       ` Serge E. Hallyn
2008-01-14 22:42   ` Serge E. Hallyn
2008-01-08 11:35 ` [patch 6/9] unprivileged mounts: allow unprivileged mounts Miklos Szeredi
2008-01-08 11:35   ` Miklos Szeredi
2008-01-09 11:11   ` Karel Zak
     [not found]     ` <20080109111120.GI3926-CxBs/XhZ2BtHjqfyn1fVYA@public.gmane.org>
2008-01-09 12:41       ` Miklos Szeredi
2008-01-09 12:41         ` Miklos Szeredi
2008-01-14 22:58   ` Serge E. Hallyn
2008-01-08 11:35 ` [patch 7/9] unprivileged mounts: allow unprivileged fuse mounts Miklos Szeredi
2008-01-08 21:46   ` Pavel Machek
     [not found]     ` <20080108214625.GE5050-+ZI9xUNit7I@public.gmane.org>
2008-01-08 22:42       ` Miklos Szeredi
2008-01-08 22:42         ` Miklos Szeredi
2008-01-08 22:58         ` Pavel Machek
2008-01-09  9:11           ` Miklos Szeredi
2008-01-09 11:33             ` Pavel Machek
2008-01-09 13:16               ` Miklos Szeredi
2008-01-09 13:35                 ` Pavel Machek
2008-01-09 13:48                   ` Miklos Szeredi
     [not found]                     ` <E1JCbIb-0005rA-5O-8f8m9JG5TPIdUIPVzhDTVZP2KDSNp7ea@public.gmane.org>
2008-01-09 14:00                       ` Pavel Machek
2008-01-09 14:00                         ` Pavel Machek
2008-01-09 14:14                         ` Miklos Szeredi
2008-01-08 23:56         ` Nigel Cunningham
     [not found]           ` <47840DAC.5000108-MhVfhJ0qHmuWn91e4EydUaxOck334EZe@public.gmane.org>
2008-01-09  8:47             ` Miklos Szeredi
2008-01-09  8:47               ` Miklos Szeredi
     [not found]               ` <E1JCWax-0005Ck-Kg-8f8m9JG5TPIdUIPVzhDTVZP2KDSNp7ea@public.gmane.org>
2008-01-09  9:29                 ` Nigel Cunningham
2008-01-09  9:29                   ` Nigel Cunningham
2008-01-09 11:12               ` Pavel Machek
2008-01-09  9:19             ` Szabolcs Szakacsits
2008-01-09  9:19               ` Szabolcs Szakacsits
     [not found]   ` <20080108113630.861045063-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
2008-01-14 23:24     ` Serge E. Hallyn
2008-01-14 23:24       ` Serge E. Hallyn
2008-01-15 10:29       ` Miklos Szeredi
2008-01-15 10:29         ` Miklos Szeredi
     [not found]         ` <E1JEj3N-0000vj-QA-8f8m9JG5TPIdUIPVzhDTVZP2KDSNp7ea@public.gmane.org>
2008-01-15 13:35           ` Serge E. Hallyn
2008-01-15 13:35             ` Serge E. Hallyn
2008-01-08 11:35 ` [patch 8/9] unprivileged mounts: propagation: inherit owner from parent Miklos Szeredi
     [not found]   ` <20080108113632.895453887-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
2008-01-14 23:13     ` Serge E. Hallyn
2008-01-14 23:13       ` Serge E. Hallyn
2008-01-15 10:39       ` Miklos Szeredi
2008-01-15 10:39         ` Miklos Szeredi
     [not found]         ` <E1JEjCG-0000wz-BS-8f8m9JG5TPIdUIPVzhDTVZP2KDSNp7ea@public.gmane.org>
2008-01-15 14:21           ` Serge E. Hallyn
2008-01-15 14:21             ` Serge E. Hallyn
2008-01-15 14:37             ` Miklos Szeredi
2008-01-15 14:37               ` Miklos Szeredi
     [not found]               ` <E1JEmv3-0001RN-6J-8f8m9JG5TPIdUIPVzhDTVZP2KDSNp7ea@public.gmane.org>
2008-01-15 14:59                 ` Serge E. Hallyn
2008-01-15 14:59                   ` Serge E. Hallyn
2008-01-08 11:35 ` [patch 9/9] unprivileged mounts: add "no submounts" flag Miklos Szeredi
     [not found]   ` <20080108113634.382855604-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
2008-01-14 23:39     ` Serge E. Hallyn
2008-01-14 23:39       ` Serge E. Hallyn
2008-01-15 10:41       ` Miklos Szeredi
2008-01-15 10:41         ` Miklos Szeredi
2008-01-15 10:53         ` A. C. Censi
     [not found]           ` <643ea2b10801150253i735d7342q73bf01f864d6167c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-01-15 10:58             ` Miklos Szeredi
2008-01-15 10:58               ` Miklos Szeredi
2008-01-15 13:47               ` Serge E. Hallyn
2008-01-16  9:43                 ` Miklos Szeredi
2008-01-16  9:43                   ` Miklos Szeredi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1199816786.9834.70.camel@localhost \
    --to=haveblue@us.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=containers@lists.osdl.org \
    --cc=ebiederm@xmission.com \
    --cc=hch@infradead.org \
    --cc=kzak@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=serue@us.ibm.com \
    --cc=util-linux-ng@vger.kernel.org \
    --cc=viro@ftp.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.