1. 30 10月, 2012 7 次提交
  2. 24 7月, 2012 2 次提交
    • L
      drbd: announce FLUSH/FUA capability to upper layers · a73ff323
      Lars Ellenberg 提交于
      Unconditionally announce FLUSH/FUA to upper layers.
      If the lower layers on either node do not actually support this,
      generic_make_request() will deal with it.
      
      If this causes performance regressions on your setup,
      make sure there are no volatile caches involved,
      and mount -o nobarrier or equivalent.
      Signed-off-by: NPhilipp Reisner <philipp.reisner@linbit.com>
      Signed-off-by: NLars Ellenberg <lars.ellenberg@linbit.com>
      a73ff323
    • L
      drbd: fix potential access after free · c12e9c89
      Lars Ellenberg 提交于
      Occasionally, if we disconnect, we triggered this assert:
        block drbd7: ASSERT FAILED tl_hash[27] == c30b0f04, expected NULL
      
      hlist_del() happens only on master bio completion.
      
      We used to wait for pending IO to complete before freeing tl_hash
      on disconnect. We no longer do so, since we learned to "freeze"
      IO on disconnect.
      
      If the local disk is too slow, we may reach C_STANDALONE early,
      and there are still some requests pending locally when we call
      drbd_free_tl_hash().
      
      If we now free the tl_hash, and later the local IO completion completes
      the master bio, which then does hlist_del() and clobbers freed memory.
      
      Do hlist_del_init() and hlist_add_fake() before kfree(tl_hash),
      so the hlist_del() on master bio completion is harmless.
      Signed-off-by: NPhilipp Reisner <philipp.reisner@linbit.com>
      Signed-off-by: NLars Ellenberg <lars.ellenberg@linbit.com>
      c12e9c89
  3. 10 5月, 2012 1 次提交
  4. 09 5月, 2012 13 次提交
  5. 22 4月, 2012 1 次提交
  6. 30 6月, 2011 1 次提交
  7. 24 5月, 2011 5 次提交
  8. 31 3月, 2011 1 次提交
  9. 10 3月, 2011 9 次提交