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

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Tue Apr 16 09:24:28 CEST 2013


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       |   8 ++++
 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         |  22 +++++-----
 sheep/work.h         |   1 +
 10 files changed, 227 insertions(+), 123 deletions(-)

-- 
1.8.1.3.566.gaa39828




More information about the sheepdog mailing list