anchor.diff:                                      {"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}]}],
  +                                    {"bytes", Res}, {"blocks", [{FileSize - Res, Res}]}, {"filePath", File}],
                                   gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, WriteEventAvailableBlocks}})
                               end);
                           _ ->
  
positive.code:     ErrorGeneral :: atom(),
      ErrorDetail :: term().
  %% ====================================================================
  write(File, Offset, Buf, EventPolicy) ->
      case write_enabled(fslogic_context:get_user_dn()) of
          true ->
  
negative.code:                 {ok, true} ->
                      TruncateEvent = [{"type", "truncate_event"}, {"user_dn", fslogic_context:get_user_dn()}, {"filePath", File}],
                      gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, TruncateEvent}}),
                      TruncateEventAvailableBlocks = [{"type", "truncate_for_available_blocks"}, {"user_dn", fslogic_context:get_user_dn()}, {"filePath", File},
                          {"blocks", [{0, Size}]}, {"filePath", File}],
                      gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, TruncateEventAvailableBlocks}});
                  _ ->
                      ok
  