1. 17 Feb, 2010 10 commits
    • Sage Weil's avatar
      ceph: use rbtree for pg pools; decode new osdmap format · 4fc51be8
      Sage Weil authored
      Since we can now create and destroy pg pools, the pool ids will be sparse,
      and an array no longer makes sense for looking up by pool id.  Use an
      rbtree instead.
      
      The OSDMap encoding also no longer has a max pool count (previously used to
      allocate the array).  There is a new pool_max, that is the largest pool id
      we've ever used, although we don't actually need it in the client.
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      4fc51be8
    • Sage Weil's avatar
      ceph: fix memory leak when destroying osdmap with pg_temp mappings · 9794b146
      Sage Weil authored
      Also move _lookup_pg_mapping into a helper.
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      9794b146
    • Sage Weil's avatar
      ceph: fix iterate_caps removal race · 7c1332b8
      Sage Weil authored
      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: default avatarSage Weil <sage@newdream.net>
      7c1332b8
    • Sage Weil's avatar
      ceph: clean up readdir caps reservation · 85ccce43
      Sage Weil authored
      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: default avatarSage Weil <sage@newdream.net>
      85ccce43
    • Sage Weil's avatar
      ceph: fix authentication races, auth_none oops · 5ce6e9db
      Sage Weil authored
      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: default avatarSage Weil <sage@newdream.net>
      5ce6e9db
    • Sage Weil's avatar
      ceph: use rbtree for mon statfs requests · 85ff03f6
      Sage Weil authored
      An rbtree is lighter weight, particularly given we will generally have
      very few in-flight statfs requests.
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      85ff03f6
    • Sage Weil's avatar
      ceph: use rbtree for snap_realms · a105f00c
      Sage Weil authored
      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: default avatarSage Weil <sage@newdream.net>
      a105f00c
    • Sage Weil's avatar
      ceph: use rbtree for mds requests · 44ca18f2
      Sage Weil authored
      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: default avatarSage Weil <sage@newdream.net>
      44ca18f2
    • Sage Weil's avatar
      ceph: cancel delayed work when closing connection · 91e45ce3
      Sage Weil authored
      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: default avatarSage Weil <sage@newdream.net>
      91e45ce3
    • Sage Weil's avatar
      ceph: allow connection to be reopened by fault callback · e2663ab6
      Sage Weil authored
      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: default avatarSage Weil <sage@newdream.net>
      e2663ab6
  2. 15 Feb, 2010 1 commit
  3. 14 Feb, 2010 1 commit
  4. 11 Feb, 2010 14 commits
  5. 10 Feb, 2010 4 commits
  6. 03 Feb, 2010 2 commits
  7. 29 Jan, 2010 2 commits
  8. 26 Jan, 2010 1 commit
  9. 25 Jan, 2010 5 commits