summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/file_handle_cache.erl7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl
index 93a75ac024..b65a05a791 100644
--- a/src/file_handle_cache.erl
+++ b/src/file_handle_cache.erl
@@ -582,7 +582,7 @@ close1(Ref, Handle, SoftOrHard) ->
Handle2 =
case Hdl of
closed ->
- ok;
+ Handle1;
_ ->
ok = case IsDirty of
true -> file:sync(Hdl);
@@ -605,7 +605,8 @@ close1(Ref, Handle, SoftOrHard) ->
?SERVER, {close, self(), Oldest}),
Tree1
end),
- Handle1 #handle { trusted_offset = Offset,
+ Handle1 #handle { hdl = closed,
+ trusted_offset = Offset,
is_dirty = false }
end,
case SoftOrHard of
@@ -624,7 +625,7 @@ close1(Ref, Handle, SoftOrHard) ->
has_writer = HasWriter1 })
end,
ok;
- soft -> {ok, Handle2 #handle { hdl = closed }}
+ soft -> {ok, Handle2}
end;
{Error, Handle1} ->
put_handle(Ref, Handle1),