1. 26 10月, 2011 7 次提交
  2. 29 9月, 2011 2 次提交
    • S
      libceph: fix pg_temp mapping update · 8adc8b3d
      Sage Weil 提交于
      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: NSage Weil <sage@newdream.net>
      8adc8b3d
    • S
      libceph: fix pg_temp mapping calculation · 782e182e
      Sage Weil 提交于
      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: NSage Weil <sage@newdream.net>
      782e182e
  3. 17 9月, 2011 3 次提交
  4. 01 9月, 2011 1 次提交
  5. 10 8月, 2011 1 次提交
    • S
      libceph: fix msgpool · 5185352c
      Sage Weil 提交于
      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: NSage Weil <sage@newdream.net>
      5185352c
  6. 27 7月, 2011 1 次提交
  7. 20 7月, 2011 1 次提交
    • S
      ceph: fix file mode calculation · 38be7a79
      Sage Weil 提交于
      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: NFyodor Ustinov <ufm@ufm.su>
      Signed-off-by: NSage Weil <sage@newdream.net>
      38be7a79
  8. 17 6月, 2011 1 次提交
  9. 14 6月, 2011 1 次提交
  10. 08 6月, 2011 1 次提交
  11. 25 5月, 2011 2 次提交
  12. 20 5月, 2011 8 次提交
  13. 04 5月, 2011 2 次提交
  14. 07 4月, 2011 1 次提交
  15. 31 3月, 2011 1 次提交
  16. 30 3月, 2011 4 次提交
  17. 29 3月, 2011 1 次提交
  18. 27 3月, 2011 1 次提交
  19. 26 3月, 2011 1 次提交
    • S
      ceph: flush msgr_wq during mds_client shutdown · ef550f6f
      Sage Weil 提交于
      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: NSage Weil <sage@newdream.net>
      ef550f6f