1. 20 11月, 2014 1 次提交
  2. 04 11月, 2014 1 次提交
  3. 14 10月, 2014 2 次提交
    • N
      autofs4: d_manage() should return -EISDIR when appropriate in rcu-walk mode. · ef16cc59
      NeilBrown 提交于
      If rcu-walk mode we don't *have* to return -EISDIR for non-mount-traps
      as we will simply drop into REF-walk and handling DCACHE_NEED_AUTOMOUNT
      dentrys the slow way.  But it is better if we do when possible.
      
      In 'oz_mode', use the same condition as ref-walk: if not a mountpoint,
      then it must be -EISDIR.
      
      In regular mode there are most tests needed.  Most of them can be
      performed without taking any spinlocks.  If we find a directory that
      isn't obviously empty, and isn't mounted on, we need to call
      'simple_empty()' which does take a spinlock.  If this turned out to hurt
      performance, some other approach could be found to signal when a
      directory is known to be empty.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Reviewed-by: NIan Kent <raven@themaw.net>
      Tested-by: NIan Kent <raven@themaw.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ef16cc59
    • N
      autofs4: allow RCU-walk to walk through autofs4 · 23bfc2a2
      NeilBrown 提交于
      This series teaches autofs about RCU-walk so that we don't drop straight
      into REF-walk when we hit an autofs directory, and so that we avoid
      spinlocks as much as possible when performing an RCU-walk.
      
      This is needed so that the benefits of the recent NFS support for
      RCU-walk are fully available when NFS filesystems are automounted.
      
      Patches have been carefully reviewed and tested both with test suites
      and in production - thanks a lot to Ian Kent for his support there.
      
      This patch (of 6):
      
      Any attempt to look up a pathname that passes though an autofs4 mount is
      currently forced out of RCU-walk into REF-walk.
      
      This can significantly hurt performance of many-thread work loads on
      many-core systems, especially if the automounted filesystem supports
      RCU-walk but doesn't get to benefit from it.
      
      So if autofs4_d_manage is called with rcu_walk set, only fail with -ECHILD
      if it is necessary to wait longer than a spinlock.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Reviewed-by: NIan Kent <raven@themaw.net>
      Tested-by: NIan Kent <raven@themaw.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      23bfc2a2
  4. 09 8月, 2014 2 次提交
  5. 07 5月, 2014 1 次提交
    • I
      autofs: fix lockref lookup · 6b6751f7
      Ian Kent 提交于
      autofs needs to be able to see private data dentry flags for its dentrys
      that are being created but not yet hashed and for its dentrys that have
      been rmdir()ed but not yet freed.  It needs to do this so it can block
      processes in these states until a status has been returned to indicate
      the given operation is complete.
      
      It does this by keeping two lists, active and expring, of dentrys in
      this state and uses ->d_release() to keep them stable while it checks
      the reference count to determine if they should be used.
      
      But with the recent lockref changes dentrys being freed sometimes don't
      transition to a reference count of 0 before being freed so autofs can
      occassionally use a dentry that is invalid which can lead to a panic.
      Signed-off-by: NIan Kent <raven@themaw.net>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6b6751f7
  6. 24 1月, 2014 1 次提交
  7. 05 7月, 2013 1 次提交
  8. 29 6月, 2013 1 次提交
  9. 07 5月, 2013 1 次提交
  10. 02 3月, 2013 1 次提交
  11. 26 2月, 2013 1 次提交
  12. 23 2月, 2013 1 次提交
  13. 14 12月, 2012 2 次提交
    • I
      autofs4 - use simple_empty() for empty directory check · 0259cb02
      Ian Kent 提交于
      For direct (and offset) mounts, if an automounted mount is manually
      umounted the trigger mount dentry can appear non-empty causing it to
      not trigger mounts. This can also happen if there is a file handle
      leak in a user space automounting application.
      
      This happens because, when a ioctl control file handle is opened
      on the mount, a cursor dentry is created which causes list_empty()
      to see the dentry as non-empty. Since there is a case where listing
      the directory of these dentrys is needed, the use of dcache_dir_*()
      functions for .open() and .release() is needed.
      
      Consequently simple_empty() must be used instead of list_empty()
      when checking for an empty directory.
      Signed-off-by: NIan Kent <raven@themaw.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0259cb02
    • I
      autofs4 - dont clear DCACHE_NEED_AUTOMOUNT on rootless mount · f55fb0c2
      Ian Kent 提交于
      The DCACHE_NEED_AUTOMOUNT flag is cleared on mount and set on expire
      for autofs rootless multi-mount dentrys to prevent unnecessary calls
      to ->d_automount().
      
      Since DCACHE_MANAGE_TRANSIT is always set on autofs dentrys ->d_managed()
      is always called so the check can be done in ->d_manage() without the
      need to change the flag. This still avoids unnecessary calls to
      ->d_automount(), adds negligible overhead and eliminates a seriously
      ugly check in the expire code.
      Signed-off-by: NIan Kent <raven@themaw.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f55fb0c2
  14. 11 10月, 2012 1 次提交
  15. 14 7月, 2012 1 次提交
    • A
      stop passing nameidata to ->lookup() · 00cd8dd3
      Al Viro 提交于
      Just the flags; only NFS cares even about that, but there are
      legitimate uses for such argument.  And getting rid of that
      completely would require splitting ->lookup() into a couple
      of methods (at least), so let's leave that alone for now...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      00cd8dd3
  16. 04 1月, 2012 1 次提交
  17. 30 5月, 2011 1 次提交
  18. 26 5月, 2011 1 次提交
  19. 31 3月, 2011 1 次提交
  20. 25 3月, 2011 3 次提交
  21. 18 3月, 2011 1 次提交
  22. 18 1月, 2011 8 次提交
  23. 16 1月, 2011 6 次提交