anchor.diff:  		{ok, AcctSessionId} = radius_attributes:find(?AcctSessionId, Attributes),
   		ok = disk_log:log(Log, Attributes),
   		NewState = case decrement_balance(Subscriber, Usage) of
  -			{ok, OverUsed} when OverUsed =< 0 ->
  +			{ok, OverUsed, false} when OverUsed =< 0 ->
   				case supervisor:start_child(DiscSup, [[Address, NasID,
   						Subscriber, AcctSessionId, Secret, Attributes, DiskId], [{debug, [trace]}]]) of
   					{ok, _Child} ->
  
positive.code: 							{error, Reason}]),
  						State
  				end;
  			{ok, _SufficientBalance} ->
  				State
  		end,
  		{reply, {ok, response(Id, Authenticator, Secret)}, NewState}
  
negative.code: 		Usage >= 0 ->
  	F = fun() ->
  				case mnesia:read(subscriber, Subscriber, write) of
  					[#subscriber{balance = Balance, disconnect = Flag} = Entry] ->
  						NewBalance = Balance - Usage,
  						NewEntry = Entry#subscriber{balance = NewBalance},
  						mnesia:write(subscriber, NewEntry, write),
  						{NewBalance, Flag};
  					[] ->
  						throw(not_found)
  				end
  	end,
  	case mnesia:transaction(F) of
  		{atomic, {NewBalance, Flag}} ->
  			{ok, NewBalance, Flag};
  		{aborted, {throw, Reason}} ->
  			{error, Reason};
  		{aborted, Reason} ->
  			error_logger:error_report(["Failed to decrement balance",
  					{error, Reason}, {subscriber, Subscriber}]),
  			{error, Reason}
  	end.
  
  