1. 20 9月, 2017 1 次提交
    • I
      libceph: don't allow bidirectional swap of pg-upmap-items · 29a0cfbf
      Ilya Dryomov 提交于
      This reverts most of commit f53b7665 ("libceph: upmap semantic
      changes").
      
      We need to prevent duplicates in the final result.  For example, we
      can currently take
      
        [1,2,3] and apply [(1,2)] and get [2,2,3]
      
      or
      
        [1,2,3] and apply [(3,2)] and get [1,2,2]
      
      The rest of the system is not prepared to handle duplicates in the
      result set like this.
      
      The reverted piece was intended to allow
      
        [1,2,3] and [(1,2),(2,1)] to get [2,1,3]
      
      to reorder primaries.  First, this bidirectional swap is hard to
      implement in a way that also prevents dups.  For example, [1,2,3] and
      [(1,4),(2,3),(3,4)] would give [4,3,4] but would we just drop the last
      step we'd have [4,3,3] which is also invalid, etc.  Simpler to just not
      handle bidirectional swaps.  In practice, they are not needed: if you
      just want to choose a different primary then use primary_affinity, or
      pg_upmap (not pg_upmap_items).
      
      Cc: stable@vger.kernel.org # 4.13
      Link: http://tracker.ceph.com/issues/21410Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      Reviewed-by: NSage Weil <sage@redhat.com>
      29a0cfbf
  2. 07 9月, 2017 2 次提交
  3. 01 8月, 2017 6 次提交
  4. 17 7月, 2017 5 次提交
  5. 07 7月, 2017 26 次提交