1. 29 4月, 2014 2 次提交
  2. 07 4月, 2014 1 次提交
  3. 05 4月, 2014 1 次提交
  4. 03 4月, 2014 5 次提交
  5. 18 2月, 2014 2 次提交
  6. 30 1月, 2014 1 次提交
  7. 21 1月, 2014 1 次提交
  8. 01 1月, 2014 1 次提交
  9. 01 10月, 2013 1 次提交
  10. 10 8月, 2013 1 次提交
  11. 29 6月, 2013 1 次提交
  12. 02 5月, 2013 2 次提交
    • Y
      ceph: use i_release_count to indicate dir's completeness · 2f276c51
      Yan, Zheng 提交于
      Current ceph code tracks directory's completeness in two places.
      ceph_readdir() checks i_release_count to decide if it can set the
      I_COMPLETE flag in i_ceph_flags. All other places check the I_COMPLETE
      flag. This indirection introduces locking complexity.
      
      This patch adds a new variable i_complete_count to ceph_inode_info.
      Set i_release_count's value to it when marking a directory complete.
      By comparing the two variables, we know if a directory is complete
      Signed-off-by: NYan, Zheng <zheng.z.yan@intel.com>
      2f276c51
    • Y
      ceph: use I_COMPLETE inode flag instead of D_COMPLETE flag · a8673d61
      Yan, Zheng 提交于
      commit c6ffe100 moved the flag that tracks if the dcache contents
      for a directory are complete to dentry. The problem is there are
      lots of places that use ceph_dir_{set,clear,test}_complete() while
      holding i_ceph_lock. but ceph_dir_{set,clear,test}_complete() may
      sleep because they call dput().
      
      This patch basically reverts that commit. For ceph_d_prune(), it's
      called with both the dentry to prune and the parent dentry are
      locked. So it's safe to access the parent dentry's d_inode and
      clear I_COMPLETE flag.
      Signed-off-by: NYan, Zheng <zheng.z.yan@intel.com>
      Reviewed-by: NGreg Farnum <greg@inktank.com>
      Reviewed-by: NSage Weil <sage@inktank.com>
      a8673d61
  13. 23 2月, 2013 1 次提交
  14. 18 12月, 2012 1 次提交
  15. 03 8月, 2012 1 次提交
    • S
      ceph: simplify+fix atomic_open · 5ef50c3b
      Sage Weil 提交于
      The initial ->atomic_open op was carried over from the old intent code,
      which was incomplete and didn't really work.  Replace it with a fresh
      method.  In particular:
      
       * always attempt to do an atomic open+lookup, both for the create case
         and for lookups of existing files.
       * fix symlink handling by returning 1 to the VFS so that we can follow
         the link to its destination. This fixes a longstanding ceph bug (#2392).
      Signed-off-by: NSage Weil <sage@inktank.com>
      5ef50c3b
  16. 31 7月, 2012 1 次提交
  17. 14 7月, 2012 9 次提交
  18. 03 2月, 2012 1 次提交
    • A
      ceph: create a new session lock to avoid lock inversion · d8fb02ab
      Alex Elder 提交于
      Lockdep was reporting a possible circular lock dependency in
      dentry_lease_is_valid().  That function needs to sample the
      session's s_cap_gen and and s_cap_ttl fields coherently, but needs
      to do so while holding a dentry lock.  The s_cap_lock field was
      being used to protect the two fields, but that can't be taken while
      holding a lock on a dentry within the session.
      
      In most cases, the s_cap_gen and s_cap_ttl fields only get operated
      on separately.  But in three cases they need to be updated together.
      Implement a new lock to protect the spots updating both fields
      atomically is required.
      Signed-off-by: NAlex Elder <elder@dreamhost.com>
      Reviewed-by: NSage Weil <sage@newdream.net>
      d8fb02ab
  19. 13 1月, 2012 1 次提交
  20. 11 1月, 2012 2 次提交
  21. 04 1月, 2012 4 次提交