1. 18 5月, 2010 6 次提交
  2. 12 5月, 2010 1 次提交
  3. 04 5月, 2010 1 次提交
  4. 31 3月, 2010 1 次提交
    • S
      ceph: fix dentry rehashing on virtual .snap dir · 9358c6d4
      Sage Weil 提交于
      If a lookup fails on the magic .snap directory, we bind it to a magic
      snap directory inode in ceph_lookup_finish().  That code assumes the dentry
      is unhashed, but a recent server-side change started returning NULL leases
      on lookup failure, causing the .snap dentry to be hashed and NULL by
      ceph_fill_trace().
      
      This causes dentry hash chain corruption, or a dies when d_rehash()
      includes
      	BUG_ON(!d_unhashed(entry));
      
      So, avoid processing the NULL dentry lease if it the dentry matches the
      snapdir name in ceph_fill_trace().  That allows the lookup completion to
      properly bind it to the snapdir inode.  BUG there if dentry is hashed to
      be sure.
      Signed-off-by: NSage Weil <sage@newdream.net>
      9358c6d4
  5. 21 3月, 2010 1 次提交
    • S
      ceph: fix inode removal from snap realm when racing with migration · 8b218b8a
      Sage Weil 提交于
      When an inode was dropped while being migrated between two MDSs,
      i_cap_exporting_issued was non-zero such that issue caps were non-zero and
      __ceph_is_any_caps(ci) was true.  This prevented the inode from being
      removed from the snap realm, even as it was dropped from the cache.
      
      Fix this by dropping any residual i_snap_realm ref in destroy_inode.
      Signed-off-by: NSage Weil <sage@newdream.net>
      8b218b8a
  6. 20 2月, 2010 1 次提交
  7. 18 2月, 2010 1 次提交
  8. 12 2月, 2010 2 次提交
  9. 30 1月, 2010 1 次提交
  10. 26 1月, 2010 1 次提交
    • S
      ceph: properly handle aborted mds requests · 5b1daecd
      Sage Weil 提交于
      Previously, if the MDS request was interrupted, we would unregister the
      request and ignore any reply.  This could cause the caps or other cache
      state to become out of sync.  (For instance, aborting dbench and doing
      rm -r on clients would complain about a non-empty directory because the
      client didn't realize it's aborted file create request completed.)
      
      Even we don't unregister, we still can't process the reply normally because
      we are no longer holding the caller's locks (like the dir i_mutex).
      
      So, mark aborted operations with r_aborted, and in the reply handler, be
      sure to process all the caps.  Do not process the namespace changes,
      though, since we no longer will hold the dir i_mutex.  The dentry lease
      state can also be ignored as it's more forgiving.
      Signed-off-by: NSage Weil <sage@newdream.net>
      5b1daecd
  11. 15 1月, 2010 1 次提交
  12. 22 12月, 2009 1 次提交
  13. 08 12月, 2009 1 次提交
  14. 12 11月, 2009 1 次提交
  15. 22 10月, 2009 1 次提交
  16. 07 10月, 2009 1 次提交
    • S
      ceph: inode operations · 355da1eb
      Sage Weil 提交于
      Inode cache and inode operations.  We also include routines to
      incorporate metadata structures returned by the MDS into the client
      cache, and some helpers to deal with file capabilities and metadata
      leases.  The bulk of that work is done by fill_inode() and
      fill_trace().
      Signed-off-by: NSage Weil <sage@newdream.net>
      355da1eb