1. 18 5月, 2010 13 次提交
  2. 12 5月, 2010 7 次提交
  3. 06 5月, 2010 1 次提交
    • S
      ceph: don't use writeback_control in writepages completion · 54ad023b
      Sage Weil 提交于
      The ->writepages writeback_control is not still valid in the writepages
      completion.  We were touching it solely to adjust pages_skipped when there
      was a writeback error (EIO, ENOSPC, EPERM due to bad osd credentials),
      causing an oops in the writeback code shortly thereafter.  Updating
      pages_skipped on error isn't correct anyway, so let's just rip out this
      (clearly broken) code to pass the wbc to the completion.
      Signed-off-by: NSage Weil <sage@newdream.net>
      54ad023b
  4. 05 5月, 2010 1 次提交
  5. 04 5月, 2010 11 次提交
  6. 14 4月, 2010 3 次提交
  7. 13 4月, 2010 1 次提交
  8. 10 4月, 2010 1 次提交
  9. 03 4月, 2010 1 次提交
  10. 02 4月, 2010 1 次提交
    • S
      ceph: fix leaked inode ref due to snap metadata writeback race · 819ccbfa
      Sage Weil 提交于
      We create a ceph_cap_snap if there is dirty cap metadata (for writeback to
      mds) OR dirty pages (for writeback to osd).  It is thus possible that the
      metadata has been written back to the MDS but the OSD data has not when
      the cap_snap is created.  This results in a cap_snap with dirty(caps) == 0.
      The problem is that cap writeback to the MDS isn't necessary, and a
      FLUSHSNAP cap op gets no ack from the MDS.  This leaves the cap_snap
      attached to the inode along with its inode reference.
      
      Fix the problem by dropping the cap_snap if it becomes 'complete' (all
      pages written out) and dirty(caps) == 0 in ceph_put_wrbuffer_cap_refs().
      
      Also, BUG() in __ceph_flush_snaps() if we encounter a cap_snap with
      dirty(caps) == 0.
      Signed-off-by: NSage Weil <sage@newdream.net>
      819ccbfa