Skip to content

Commit 7f71b1b

Browse files
committed
Allow changing wrap disk_log size multiple times
1 parent 412bff5 commit 7f71b1b

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

lib/kernel/src/disk_log_1.erl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -978,13 +978,14 @@ mf_ext_close(#handle{filename = FName, curF = CurF,
978978
%% -> {ok, handle()} | throw(FileError)
979979
change_size_wrap(#handle{filename = FName} = Handle, {NewMaxB, NewMaxF}, Version) ->
980980
{_MaxB, MaxF} = get_wrap_size(Handle),
981+
BiggerMaxF = lists:max([MaxF, get_old_max_f(Handle#handle.maxF)]),
981982
write_size_file(read_write, FName, NewMaxB, NewMaxF, Version),
982983
if
983-
NewMaxF > MaxF ->
984+
NewMaxF > BiggerMaxF ->
984985
remove_files(wrap, FName, MaxF + 1, NewMaxF),
985986
{ok, Handle#handle{maxB = NewMaxB, maxF = NewMaxF}};
986-
NewMaxF < MaxF ->
987-
{ok, Handle#handle{maxB = NewMaxB, maxF = {NewMaxF, MaxF}}};
987+
NewMaxF < BiggerMaxF ->
988+
{ok, Handle#handle{maxB = NewMaxB, maxF = {NewMaxF, BiggerMaxF}}};
988989
true ->
989990
{ok, Handle#handle{maxB = NewMaxB, maxF = NewMaxF}}
990991
end.
@@ -1796,3 +1797,8 @@ file_error(FileName, {error, Error}) ->
17961797
file_error_close(Fd, FileName, {error, Error}) ->
17971798
_ = file:close(Fd),
17981799
throw({error, {file_error, FileName, Error}}).
1800+
1801+
get_old_max_f({_, OldMaxF}) ->
1802+
OldMaxF;
1803+
get_old_max_f(MaxF) ->
1804+
MaxF.

0 commit comments

Comments
 (0)