[sheepdog] [PATCH v3 00/11] fix the problems caused by our thread model

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Fri Apr 19 10:55:19 CEST 2013


v3:
 - fix NULL dereference in bs_thread_request_done

v2:
 - add comments for uatomic_xchg_ptr

This series makes sheep assert when it runs in the inappropriate
thread, and fixes problems detected by the assertion.

The first 3 patches are preparation and trivial fixes.  The next 5
ones fix problems that we are accessing thread unsafe variables
outside the main thread.  The last 3 ones fix exec_req() in the
main thread.

MORITA Kazutaka (11):
  sheep: add helper functions to check the current thread
  sheep: fix comment of put_vnode_info
  sheep/recovery: guard next_rw with RCU
  sheep: introduce helpers to handle thread-unsafe variables
  sheep: define some thread unsafe variables as thread_unsafe
  sheep: set vnode_info even against force operation
  sheep: don't call get_vnode_info in epoch_log_read_remote()
  work: don't call get_node_info in the worker thread
  sheep: assert when exec_req are called in the main thread
  sheep: allow process_work to set response data when SD_FLAG_CMD_WRITE
    is not set
  sheep: fix dead lock problem of cluster_force_recover

 collie/cluster.c     |  13 ++++--
 include/util.h       |  13 ++++++
 sheep/group.c        | 122 ++++++++++++++++++++++++++++++---------------------
 sheep/ops.c          |  72 +++++++++++++++++++++++-------
 sheep/recovery.c     |  64 ++++++++++++++-------------
 sheep/request.c      |  10 ++---
 sheep/sheep_priv.h   |  36 ++++++++++++---
 sheep/sockfd_cache.c |   2 +
 sheep/work.c         |  27 +++++++-----
 sheep/work.h         |   1 +
 10 files changed, 237 insertions(+), 123 deletions(-)

-- 
1.8.1.3.566.gaa39828




More information about the sheepdog mailing list