This patch set introduce a new cluster status into sheepdog, which is supposed to prevent sheepdog from serving IO when lack of redundant nodes. This patch set is based on the Kazutaka's 'remove xattr' patch set. Changes from v3 to v4 are: - change hdr flags into uint32_t from uint16_t Changes from v2 to v3 are: - add a new flag field in struct cluster_info and NOHALT uses one bit of it. - use hdr.flags to set the nohalt option in collie. - add a new epoch_log_read_nr() to return # of the entries instead of bytes. Changes from v1 to v2 are: - refactor's get_cluster_status() to prepare the code for change. - address Kazutaka's comments. - make cluster 'halt' optionally. Liu Yuan (7): sheep: add a helper epoch_log_read_nr() sheep: refactor get_cluster_status() sheep: remove wrong 'unknown message' in the log sheep: introduce SD_STATUS_HALT sheep: add a helper function to get nr_zones sheep: change hdr flags uint32_t from uint16_t sheep: use SD_STATUS_HALT to stop serving IO collie/cluster.c | 14 +++- collie/collie.c | 1 + include/sheep.h | 24 +++-- include/sheepdog_proto.h | 24 +++-- sheep/group.c | 228 +++++++++++++++++++++++++++++----------------- sheep/sheep_priv.h | 7 ++ sheep/store.c | 9 ++ 7 files changed, 199 insertions(+), 108 deletions(-) Thanks, Yuan |