anchor.diff:  -export([rmdir_recursive/1, cp/2, read/4, read/3, write/4, write/3, write/2, write_from_stream/2, create/1, truncate/2, delete/1, exists/1, error_to_string/1]).
   -export([change_file_perm/3, check_file_perm/2]).
   -export([get_file_children_count/1]).
  +
  +%% Block synchronization
  +-export([synchronize/3, mark_as_modified/3, mark_as_truncated/2]).
   
   %% File sharing
   -export([get_file_by_uuid/1, get_file_uuid/1, get_file_full_name_by_uuid/1, get_file_name_by_uuid/1, get_file_user_dependent_name_by_uuid/1]).
  
positive.code:                                 {"bytes", Res}, {"blocks", [{Offset, Res}]}],
                              gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, WriteEventStats}}),
                              WriteEventAvailableBlocks = [{"type", "write_for_available_blocks"}, {"user_dn", fslogic_context:get_user_dn()},
                                  {"bytes", Res}, {"blocks", [{Offset, Res}]}],
                              gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, WriteEventAvailableBlocks}});
                          _ ->
                              ok
  
negative.code:                                     {"bytes", Res}, {"blocks", [{FileSize - Res, Res}]}],
                                  gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, WriteEventStats}}),
                                  WriteEventAvailableBlocks = [{"type", "write_for_available_blocks"}, {"user_dn", fslogic_context:get_user_dn()},
                                      {"bytes", Res}, {"blocks", [{FileSize - Res, Res}]}, {"filePath", File}],
                                  gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, WriteEventAvailableBlocks}})
                              end);
                          _ ->
  