1. 18 2月, 2010 3 次提交
    • S
      ceph: fix memory leak when destroying osdmap with pg_temp mappings · 9794b146
      Sage Weil 提交于
      Also move _lookup_pg_mapping into a helper.
      Signed-off-by: NSage Weil <sage@newdream.net>
      9794b146
    • S
      ceph: fix iterate_caps removal race · 7c1332b8
      Sage Weil 提交于
      We need to be able to iterate over all caps on a session with a
      possibly slow callback on each cap.  To allow this, we used to
      prevent cap reordering while we were iterating.  However, we were
      not safe from races with removal: removing the 'next' cap would
      make the next pointer from list_for_each_entry_safe be invalid,
      and cause a lock up or similar badness.
      
      Instead, we keep an iterator pointer in the session pointing to
      the current cap.  As before, we avoid reordering.  For removal,
      if the cap isn't the current cap we are iterating over, we are
      fine.  If it is, we clear cap->ci (to mark the cap as pending
      removal) but leave it in the session list.  In iterate_caps, we
      can safely finish removal and get the next cap pointer.
      
      While we're at it, clean up put_cap to not take a cap reservation
      context, as it was never used.
      Signed-off-by: NSage Weil <sage@newdream.net>
      7c1332b8
    • S
      ceph: clean up readdir caps reservation · 85ccce43
      Sage Weil 提交于
      Use a global counter for the minimum number of allocated caps instead of
      hard coding a check against readdir_max.  This takes into account multiple
      client instances, and avoids examining the superblock mount options when a
      cap is dropped.
      Signed-off-by: NSage Weil <sage@newdream.net>
      85ccce43
  2. 17 2月, 2010 6 次提交
    • S
      ceph: fix authentication races, auth_none oops · 5ce6e9db
      Sage Weil 提交于
      Call __validate_auth() under monc->mutex, and use helper for
      initial hello so that the pending_auth flag is set.  This fixes
      possible races in which we have an authentication request (hello
      or otherwise) pending and send another one.  In particular, with
      auth_none, we _never_ want to call ceph_build_auth() from
      __validate_auth(), since the ->build_request() method is NULL.
      Signed-off-by: NSage Weil <sage@newdream.net>
      5ce6e9db
    • S
      ceph: use rbtree for mon statfs requests · 85ff03f6
      Sage Weil 提交于
      An rbtree is lighter weight, particularly given we will generally have
      very few in-flight statfs requests.
      Signed-off-by: NSage Weil <sage@newdream.net>
      85ff03f6
    • S
      ceph: use rbtree for snap_realms · a105f00c
      Sage Weil 提交于
      Switch from radix tree to rbtree for snap realms.  This is much more
      appropriate given that realm keys are few and far between.
      Signed-off-by: NSage Weil <sage@newdream.net>
      a105f00c
    • S
      ceph: use rbtree for mds requests · 44ca18f2
      Sage Weil 提交于
      The rbtree is a more appropriate data structure than a radix_tree.  It
      avoids extra memory usage and simplifies the code.
      
      It also fixes a bug where the debugfs 'mdsc' file wasn't including the
      most recent mds request.
      Signed-off-by: NSage Weil <sage@newdream.net>
      44ca18f2
    • S
      ceph: cancel delayed work when closing connection · 91e45ce3
      Sage Weil 提交于
      This ensures that if/when we reopen the connection, we can requeue work on
      the connection immediately, without waiting for an old timer to expire.
      Queue new delayed work inside con->mutex to avoid any race.
      
      This fixes problems with clients failing to reconnect to the MDS due to
      the client_reconnect message arriving too late (due to waiting for an old
      delayed work timeout to expire).
      Signed-off-by: NSage Weil <sage@newdream.net>
      91e45ce3
    • S
      ceph: allow connection to be reopened by fault callback · e2663ab6
      Sage Weil 提交于
      Fix the messenger to allow a ceph_con_open() during the fault callback.
      Previously the work wasn't getting queued on the connection because the
      fault path avoids requeued work (normally spurious).  Loop on reopening by
      checking for the OPENING state bit.
      
      This fixes OSD reconnects when a TCP connection drops.
      Signed-off-by: NSage Weil <sage@newdream.net>
      e2663ab6
  3. 16 2月, 2010 1 次提交
  4. 14 2月, 2010 1 次提交
  5. 12 2月, 2010 14 次提交
  6. 11 2月, 2010 4 次提交
  7. 03 2月, 2010 2 次提交
  8. 30 1月, 2010 2 次提交
  9. 26 1月, 2010 7 次提交