1. 25 Oct, 2011 6 commits
  2. 28 Sep, 2011 2 commits
    • Sage Weil's avatar
      libceph: fix pg_temp mapping update · 8adc8b3d
      Sage Weil authored
      
      The incremental map updates have a record for each pg_temp mapping that is
      to be add/updated (len > 0) or removed (len == 0).  The old code was
      written as if the updates were a complete enumeration; that was just wrong.
      Update the code to remove 0-length entries and drop the rbtree traversal.
      
      This avoids misdirected (and hung) requests that manifest as server
      errors like
      
      [WRN] client4104 10.0.1.219:0/275025290 misdirected client4104.1:129 0.1 to osd0 not [1,0] in e11/11
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      8adc8b3d
    • Sage Weil's avatar
      libceph: fix pg_temp mapping calculation · 782e182e
      Sage Weil authored
      
      We need to apply the modulo pg_num calculation before looking up a pgid in
      the pg_temp mapping rbtree.  This fixes pg_temp mappings, and fixes
      (some) misdirected requests that result in messages like
      
      [WRN] client4104 10.0.1.219:0/275025290 misdirected client4104.1:129 0.1 to osd0 not [1,0] in e11/11
      
      on the server and stall make the client block without getting a reply (at
      least until the pg_temp mapping goes way, but that can take a long long
      time).
      
      Reorder calc_pg_raw() a bit to make more sense.
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      782e182e
  3. 16 Sep, 2011 3 commits
  4. 31 Aug, 2011 1 commit
  5. 09 Aug, 2011 1 commit
    • Sage Weil's avatar
      libceph: fix msgpool · 5185352c
      Sage Weil authored
      
      There were several problems here:
      
       1- we weren't tagging allocations with the pool, so they were never
          returned to the pool.
       2- msgpool_put didn't add back to the mempool, even it were called.
       3- msgpool_release didn't clear the pool pointer, so it would have looped
          had #1 not been broken.
      
      These may or may not have been responsible for #1136 or #1381 (BUG due to
      non-empty mempool on umount).  I can't seem to trigger the crash now using
      the method I was using before.
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      5185352c
  6. 26 Jul, 2011 1 commit
  7. 19 Jul, 2011 1 commit
    • Sage Weil's avatar
      ceph: fix file mode calculation · 38be7a79
      Sage Weil authored
      
      open(2) must always include one of O_RDONLY, O_WRONLY, or O_RDWR.  No need
      for any O_APPEND special case.
      
      Passing O_WRONLY|O_RDWR is undefined according to the man page, but the
      Linux VFS interprets this as O_RDWR, so we'll do the same.
      
      This fixes open(2) with flags O_RDWR|O_APPEND, which was incorrectly being
      translated to readonly.
      Reported-by: default avatarFyodor Ustinov <ufm@ufm.su>
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      38be7a79
  8. 17 Jun, 2011 1 commit
  9. 13 Jun, 2011 1 commit
  10. 08 Jun, 2011 1 commit
  11. 24 May, 2011 2 commits
  12. 19 May, 2011 8 commits
  13. 03 May, 2011 2 commits
  14. 06 Apr, 2011 1 commit
  15. 31 Mar, 2011 1 commit
  16. 29 Mar, 2011 5 commits
  17. 26 Mar, 2011 1 commit
  18. 25 Mar, 2011 1 commit
    • Sage Weil's avatar
      ceph: flush msgr_wq during mds_client shutdown · ef550f6f
      Sage Weil authored
      
      The release method for mds connections uses a backpointer to the
      mds_client, so we need to flush the workqueue of any pending work (and
      ceph_connection references) prior to freeing the mds_client.  This fixes
      an oops easily triggered under UML by
      
       while true ; do mount ... ; umount ... ; done
      
      Also fix an outdated comment: the flush in ceph_destroy_client only flushes
      OSD connections out.  This bug is basically an artifact of the ceph ->
      ceph+libceph conversion.
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      ef550f6f
  19. 22 Mar, 2011 1 commit