diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-11-25 13:52:38 +0000 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-11-25 13:52:38 +0000 |
| commit | 9a90caea595220767033c14a68e5de5c834d70b4 (patch) | |
| tree | 68293da6f39496dfd7cf8e8ac28bbd3461ae87a1 /src | |
| parent | 9fa61279a0b00ee622c336b0c6c12fa2f983bf21 (diff) | |
| download | rabbitmq-server-git-9a90caea595220767033c14a68e5de5c834d70b4.tar.gz | |
Make sure that trusted_offset in open1 is set to an absolute offset
Diffstat (limited to 'src')
| -rw-r--r-- | src/file_handle_cache.erl | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl index a3ebd7a59e..dbfffff4b6 100644 --- a/src/file_handle_cache.erl +++ b/src/file_handle_cache.erl @@ -414,15 +414,16 @@ open1(Path, Mode, Options, Ref, Offset) -> end, Now = now(), Handle = - #handle { hdl = Hdl, offset = 0, trusted_offset = Offset, + #handle { hdl = Hdl, offset = 0, trusted_offset = 0, write_buffer_size = 0, options = Options, write_buffer_size_limit = WriteBufferSize, write_buffer = [], at_eof = false, mode = Mode, is_write = is_writer(Mode), is_read = is_reader(Mode), path = Path, last_used_at = Now, is_dirty = false }, - {{ok, _Offset}, Handle1} = maybe_seek(Offset, Handle), - put({Ref, fhc_handle}, Handle1), + {{ok, Offset1}, Handle1} = maybe_seek(Offset, Handle), + Handle2 = Handle1 #handle { trusted_offset = Offset1 }, + put({Ref, fhc_handle}, Handle2), with_age_tree(fun (Tree) -> Tree1 = gb_trees:insert(Now, Ref, Tree), {Oldest, _Ref} = gb_trees:smallest(Tree1), @@ -430,7 +431,7 @@ open1(Path, Mode, Options, Ref, Offset) -> {open, self(), Oldest}), Tree1 end), - {ok, Handle1}; + {ok, Handle2}; {error, Reason} -> {error, Reason} end. |
