anchor.diff:  
   -include("proto/oneclient/fuse_messages.hrl").
   -include_lib("ctool/include/posix/acl.hrl").
  +-include_lib("ctool/include/logging.hrl").
   
   %% API
   -export([truncate/3, truncate_insecure/4]).
  
positive.code: truncate_insecure(UserCtx, FileCtx, Size, UpdateTimes) ->
      FileCtx2 = update_quota(FileCtx, Size),
  
      FileCtx4 = case file_ctx:get_extended_direct_io_const(FileCtx2) of
          true ->
              FileCtx2;
          _ ->
  
negative.code:             {SFMHandle, FileCtx3} = storage_file_manager:new_handle(SessId, FileCtx2),
              case storage_file_manager:open(SFMHandle, write) of
                  {ok, Handle} ->
                      case storage_file_manager:truncate(Handle, Size) of
                          ok ->
                              ok;
                          Error = {error, ?EBUSY} ->
                              {Path, FileCtx4} = file_ctx:get_canonical_path(FileCtx3),
                              {StorageFileId, _} = file_ctx:get_storage_file_id(FileCtx4),
                              ?warning_stacktrace("truncate of file ~p with file_id ~p returned ~p",
                                  [Path, StorageFileId, Error])
                      end,
                      ok = storage_file_manager:release(Handle),
                      ok = file_popularity:update_size(FileCtx3, Size);
                  {error, ?ENOENT} ->
  