Hi Ilya, Jason and all: This is V4 fro krbd journaling feature. Please help to review. thanx kernel branch: https://github.com/yangdongsheng/linux/tree/krbd_journaling_v4 ceph qa branch: https://github.com/yangdongsheng/ceph/tree/krbd_mirror_qa Changelog: - from v3: 1 Fix multi-events for single write problem. And I added a test case in rbd_mirror.sh for it: https://github.com/yangdongsheng/ceph/commit/cb1f2d10d7c206afbd05718868401e6c2ee13e0c#diff-64d0a5a0c5330ed542d2b395a20b0a97R31 2 Add zeroout event support. And I added a test case in rbd_mirror.sh: https://github.com/yangdongsheng/ceph/commit/20ead333371603000747e17b9f528fe2584d4034#diff-64d0a5a0c5330ed542d2b395a20b0a97R43 3 Fix call chain problem found in iozone testing. 4 coding-style. fixed some coding-style problem. In addition, I tried clang-format to do a double check. Dongsheng Yang (12): libceph: introduce ceph_extract_encoded_string_kvmalloc libceph: introduce a new parameter of workqueue in ceph_osdc_watch() libceph: support op append libceph: add prefix and suffix in ceph_osd_req_op.extent libceph: introduce cls_journal_client libceph: introduce generic journaler module rbd: introduce completion for each img_request rbd: introduce IMG_REQ_NOLOCK flag for image request state rbd: introduce rbd_journal_allocate_tag to allocate journal tag for rbd client rbd: append journal event in image request state machine rbd: replay events in journal rbd: add support for feature of RBD_FEATURE_JOURNALING drivers/block/rbd.c | 698 +++++++++- include/linux/ceph/cls_journal_client.h | 84 ++ include/linux/ceph/decode.h | 21 +- include/linux/ceph/journaler.h | 182 +++ include/linux/ceph/osd_client.h | 21 + net/ceph/Makefile | 3 +- net/ceph/cls_journal_client.c | 527 ++++++++ net/ceph/journaler.c | 2205 +++++++++++++++++++++++++++++++ net/ceph/osd_client.c | 61 +- 9 files changed, 3790 insertions(+), 12 deletions(-) create mode 100644 include/linux/ceph/cls_journal_client.h create mode 100644 include/linux/ceph/journaler.h create mode 100644 net/ceph/cls_journal_client.c create mode 100644 net/ceph/journaler.c -- 1.8.3.1