1. 08 11月, 2005 7 次提交
    • R
      [PATCH] mount expiry fixes · 36341f64
      Ram Pai 提交于
       - clean up the ugliness in may_umount_tree()
      
       - fix a bug in do_loopback().  after cloning a tree, do_loopback()
         unlinks only the topmost mount of the cloned tree, leaving behind the
         children mounts on their corresponding expiry list.
      Signed-off-by: NRam Pai <linuxram@us.ibm.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      36341f64
    • R
      [PATCH] umount_tree() locking change · 70fbcdf4
      Ram Pai 提交于
      umount is done under the protection of the namespace semaphore.  This
      can lead to intresting deadlocks when the last reference to a mount is
      released, if filesystem code is in sufficiently nasty state.
      
      This collects all the to-be-released-mounts and releases them after
      releasing the namespace semaphore.  That both reduces the time we are
      holding namespace semaphore and gets the things more robust.
      
      Idea proposed by Al Viro.
      Signed-off-by: NRam Pai <linuxram@us.ibm.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      70fbcdf4
    • R
      [PATCH] sanitize the interface of graft_tree(). · 5b83d2c5
      Ram Pai 提交于
      Old semantics: graft_tree() grabs a reference on the vfsmount before
      returning success.
      
      New one: graft_tree() leaves that to caller.
      
      All the callers of graft_tree() immediately dropped that reference
      anyway.  Changing the interface takes care of this unnecessary overhead.
      
      Idea proposed by Al Viro.
      Signed-off-by: NRam Pai <linuxram@us.ibm.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5b83d2c5
    • R
      [PATCH] lindent fs/namespace.c · b58fed8b
      Ram Pai 提交于
      Signed-off-by: NRam Pai <linuxram@us.ibm.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b58fed8b
    • A
      [PATCH] make /proc/mounts pollable · 5addc5dd
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5addc5dd
    • A
      [PATCH] cleanups and bug fix in do_loopback() · ccd48bc7
      Al Viro 提交于
       - check_mnt() on the source of binding should've been unconditional
         from the very beginning.  My fault - as far I could've trace it,
         that's an old thinko made back in 2001.  Kudos to Miklos for spotting
         it...
      
         Fixed.
      
       - code cleaned up.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ccd48bc7
    • A
      [PATCH] saner handling of auto_acct_off() and DQUOT_OFF() in umount · 7b7b1ace
      Al Viro 提交于
      The way we currently deal with quota and process accounting that might
      keep vfsmount busy at umount time is inherently broken; we try to turn
      them off just in case (not quite correctly, at that) and
      
        a) pray umount doesn't fail (otherwise they'll stay turned off)
        b) pray nobody doesn anything funny just as we turn quota off
      
      Moreover, LSM provides hooks for doing the same sort of broken logics.
      
      The proper way to deal with that is to introduce the second kind of
      reference to vfsmount.  Semantics:
      
       - when the last normal reference is dropped, all special ones are
         converted to normal ones and if there had been any, cleanup is done.
       - normal reference can be cloned into a special one
       - special reference can be converted to normal one; that's a no-op if
         we'd already passed the point of no return (i.e.  mntput() had
         converted special references to normal and started cleanup).
      
      The way it works: e.g. starting process accounting converts the vfsmount
      reference pinned by the opened file into special one and turns it back
      to normal when it gets shut down; acct_auto_close() is done when no
      normal references are left.  That way it does *not* obstruct umount(2)
      and it silently gets turned off when the last normal reference to
      vfsmount is gone.  Which is exactly what we want...
      
      The same should be done by LSM module that holds some internal
      references to vfsmount and wants to shut them down on umount - it should
      make them special and security_sb_umount_close() will be called exactly
      when the last normal reference to vfsmount is gone.
      
      quota handling is even simpler - we don't use normal file IO anymore, so
      there's no need to hold vfsmounts at all.  DQUOT_OFF() is done from
      deactivate_super(), where it really belongs.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7b7b1ace
  2. 11 9月, 2005 1 次提交
  3. 08 9月, 2005 2 次提交
  4. 08 8月, 2005 1 次提交
    • M
      [PATCH] namespace.c: fix bind mount from foreign namespace · 68b47139
      Miklos Szeredi 提交于
      I'm resending this patch, because I still believe it's the correct fix.
      
      Tested before/after applying the patch with a test application
      available from:
      
        http://www.inf.bme.hu/~mszeredi/nstest.c
      
      Bind mount from a foreign namespace results in an un-removable mount.
      The reason is that mnt->mnt_namespace is copied from the old mount in
      clone_mnt().  Because of this check_mnt() in sys_umount() will fail.
      
      The solution is to set mnt->mnt_namespace to current->namespace in
      clone_mnt().  clone_mnt() is either called from do_loopback() or
      copy_tree().  copy_tree() is called from do_loopback() or
      copy_namespace().
      
      When called (directly or indirectly) from do_loopback(), always
      current->namspace is being modified: check_mnt(nd->mnt).  So setting
      mnt->mnt_namespace to current->namspace is the right thing to do.
      
      When called from copy_namespace(), the setting of mnt_namespace is
      irrelevant, since mnt_namespace is reset later in that function for
      all copied mounts.
      
      Jamie said:
      
        This patch is correct.  The old code was buggy for more fundamental and
        serious reason: it broke the invariant that a tree of vfsmnts all have the
        same value of mnt_namespace (and the same for the mnt_list list).
      Signed-off-by: NMiklos Szeredi <miklos@szeredi.hu>
      Acked-by: NJamie Lokier <jamie@shareable.org>
      Cc: <viro@parcelfarce.linux.theplanet.co.uk>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      68b47139
  5. 08 7月, 2005 8 次提交
  6. 24 6月, 2005 1 次提交
  7. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4