1. 09 3月, 2013 1 次提交
    • E
      proc: Use nd_jump_link in proc_ns_follow_link · db04dc67
      Eric W. Biederman 提交于
      Update proc_ns_follow_link to use nd_jump_link instead of just
      manually updating nd.path.dentry.
      
      This fixes the BUG_ON(nd->inode != parent->d_inode) reported by Dave
      Jones and reproduced trivially with mkdir /proc/self/ns/uts/a.
      
      Sigh it looks like the VFS change to require use of nd_jump_link
      happend while proc_ns_follow_link was baking and since the common case
      of proc_ns_follow_link continued to work without problems the need for
      making this change was overlooked.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
      db04dc67
  2. 20 11月, 2012 3 次提交
    • E
      proc: Usable inode numbers for the namespace file descriptors. · 98f842e6
      Eric W. Biederman 提交于
      Assign a unique proc inode to each namespace, and use that
      inode number to ensure we only allocate at most one proc
      inode for every namespace in proc.
      
      A single proc inode per namespace allows userspace to test
      to see if two processes are in the same namespace.
      
      This has been a long requested feature and only blocked because
      a naive implementation would put the id in a global space and
      would ultimately require having a namespace for the names of
      namespaces, making migration and certain virtualization tricks
      impossible.
      
      We still don't have per superblock inode numbers for proc, which
      appears necessary for application unaware checkpoint/restart and
      migrations (if the application is using namespace file descriptors)
      but that is now allowd by the design if it becomes important.
      
      I have preallocated the ipc and uts initial proc inode numbers so
      their structures can be statically initialized.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      98f842e6
    • E
      proc: Fix the namespace inode permission checks. · bf056bfa
      Eric W. Biederman 提交于
      Change the proc namespace files into symlinks so that
      we won't cache the dentries for the namespace files
      which can bypass the ptrace_may_access checks.
      
      To support the symlinks create an additional namespace
      inode with it's own set of operations distinct from the
      proc pid inode and dentry methods as those no longer
      make sense.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      bf056bfa
    • E
      userns: Implent proc namespace operations · cde1975b
      Eric W. Biederman 提交于
      This allows entering a user namespace, and the ability
      to store a reference to a user namespace with a bind
      mount.
      
      Addition of missing userns_ns_put in userns_install
      from Gao feng <gaofeng@cn.fujitsu.com>
      Acked-by: NSerge Hallyn <serge.hallyn@canonical.com>
      Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
      cde1975b
  3. 19 11月, 2012 2 次提交
    • E
      vfs: Add setns support for the mount namespace · 8823c079
      Eric W. Biederman 提交于
      setns support for the mount namespace is a little tricky as an
      arbitrary decision must be made about what to set fs->root and
      fs->pwd to, as there is no expectation of a relationship between
      the two mount namespaces.  Therefore I arbitrarily find the root
      mount point, and follow every mount on top of it to find the top
      of the mount stack.  Then I set fs->root and fs->pwd to that
      location.  The topmost root of the mount stack seems like a
      reasonable place to be.
      
      Bind mount support for the mount namespace inodes has the
      possibility of creating circular dependencies between mount
      namespaces.  Circular dependencies can result in loops that
      prevent mount namespaces from every being freed.  I avoid
      creating those circular dependencies by adding a sequence number
      to the mount namespace and require all bind mounts be of a
      younger mount namespace into an older mount namespace.
      
      Add a helper function proc_ns_inode so it is possible to
      detect when we are attempting to bind mound a namespace inode.
      Acked-by: NSerge Hallyn <serge.hallyn@canonical.com>
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      8823c079
    • E
      pidns: Add setns support · 57e8391d
      Eric W. Biederman 提交于
      - Pid namespaces are designed to be inescapable so verify that the
        passed in pid namespace is a child of the currently active
        pid namespace or the currently active pid namespace itself.
      
        Allowing the currently active pid namespace is important so
        the effects of an earlier setns can be cancelled.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      57e8391d
  4. 14 7月, 2012 2 次提交
  5. 29 3月, 2012 1 次提交
  6. 24 3月, 2012 1 次提交
  7. 04 1月, 2012 1 次提交
  8. 16 6月, 2011 1 次提交
  9. 25 5月, 2011 1 次提交
  10. 11 5月, 2011 4 次提交