anchor.diff:                              spawn(fun() ->
                                   fslogic_context:set_user_context(Ctx),
                                   {ok, #fileattributes{size = FileSize}} = logical_files_manager:getfileattr(File),
  +                                {ok, FullFileName} = fslogic_path:get_full_file_name(File), %todo cache somehow
                                   WriteEvent = [{"type", "write_event"}, {"user_dn", fslogic_context:get_user_dn()},
  -                                    {"bytes", Res}, {"blocks", [{FileSize - Res, Res}]}],
  +                                    {"bytes", Res}, {"blocks", [{FileSize - Res, Res}]}, {"filePath", FullFileName}],
                                   gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, WriteEvent}}),
                                   WriteEventStats = [{"type", "write_for_stats"}, {"user_dn", fslogic_context:get_user_dn()},
  -                                    {"bytes", Res}, {"blocks", [{FileSize - Res, Res}]}],
  +                                    {"bytes", Res}, {"blocks", [{FileSize - Res, Res}]}, {"filePath", FullFileName}],
                                   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}],
  +                                    {"bytes", Res}, {"blocks", [{FileSize - Res, Res}]}, {"filePath", FullFileName}],
                                   gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, WriteEventAvailableBlocks}})
                               end);
                           _ ->
  
positive.code:     end;
  write(File, Buf) ->
      ct:print("write/2 ~p",[File]),
      case write_enabled(fslogic_context:get_user_dn()) of
          true ->
              {Response, Response2} = getfilelocation(File),
  
negative.code:                     %% TODO - check if asynchronous processing needed
                      case {is_integer(Res), event_production_enabled("write_event"), EventPolicy} of
                          {true, true, generate_events} ->
  
                              Ctx = fslogic_context:get_user_context(),
                              spawn(fun() ->
                                  fslogic_context:set_user_context(Ctx),
                                  {ok, FullFileName} = fslogic_path:get_full_file_name(File), %todo cache somehow
                                  WriteEvent = [{"type", "write_event"}, {"user_dn", fslogic_context:get_user_dn()},
                                      {"count", Res}, {"blocks", [{Offset, Res}]}, {"filePath", FullFileName}],
                                  gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, WriteEvent}}),
                                  WriteEventStats = [{"type", "write_for_stats"}, {"user_dn", fslogic_context:get_user_dn()},
                                      {"bytes", Res}, {"blocks", [{Offset, Res}]}, {"filePath", FullFileName}],
                                  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}]}, {"filePath", FullFileName}],
                                  gen_server:call(?Dispatcher_Name, {cluster_rengine, 1, {event_arrived, WriteEventAvailableBlocks}})
                              end);
                          _ ->
                              ok
                      end,
  