217
218
%% Spawning a process is a means to avoid deadlock when
218
219
%% disk_log_servers mutually open disk_logs.
222
223
open_distr_rpc(Nodes, A, From) ->
223
224
{AllReplies, BadNodes} = rpc:multicall(Nodes, ?MODULE, dist_open, [A]),
224
225
{Ok, Bad} = cr(AllReplies, [], []),
225
226
Old = find_old_nodes(Nodes, AllReplies, BadNodes),
226
NotOk = lists:map(fun(BadNode) -> {BadNode, {error, nodedown}} end,
227
NotOk = [{BadNode, {error, nodedown}} || BadNode <- BadNodes ++ Old],
228
228
Reply = {Ok, Bad ++ NotOk},
229
229
%% Send the reply to the waiting client:
230
230
gen_server:reply(From, Reply),