Revert "COUCHDB-1444 Fix missing_named_view errors"

This reverts commit f5341a7dc65e96b806a958a27c9ccee5ec431162.
diff --git a/src/couch_index_updater.erl b/src/couch_index_updater.erl
index 0d4c18d..853f3d1 100644
--- a/src/couch_index_updater.erl
+++ b/src/couch_index_updater.erl
@@ -15,7 +15,7 @@
 
 
 %% API
--export([start_link/2, run/2, is_running/1, update/3, restart/2]).
+-export([start_link/2, run/2, is_running/1, update/2, restart/2]).
 
 %% gen_server callbacks
 -export([init/1, terminate/2, code_change/3]).
@@ -42,8 +42,8 @@
     gen_server:call(Pid, is_running).
 
 
-update(Parent, Mod, State) ->
-    update(Parent, nil, Mod, State).
+update(Mod, State) ->
+    update(nil, Mod, State).
 
 
 restart(Pid, IdxState) ->
@@ -65,8 +65,7 @@
 handle_call({update, IdxState}, _From, #st{idx=Idx, mod=Mod}=State) ->
     Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState)],
     ?LOG_INFO("Starting index update for db: ~s idx: ~s", Args),
-    Self = self(),
-    Pid = spawn_link(fun() -> update(Self, Idx, Mod, IdxState) end),
+    Pid = spawn_link(fun() -> update(Idx, Mod, IdxState) end),
     {reply, ok, State#st{pid=Pid}};
 handle_call({restart, IdxState}, _From, #st{idx=Idx, mod=Mod}=State) ->
     Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState)],
@@ -75,8 +74,7 @@
         true -> couch_util:shutdown_sync(State#st.pid);
         _ -> ok
     end,
-    Self = self(),
-    Pid = spawn_link(fun() -> update(Self, Idx, State#st.mod, IdxState) end),
+    Pid = spawn_link(fun() -> update(Idx, State#st.mod, IdxState) end),
     {reply, ok, State#st{pid=Pid}};
 handle_call(is_running, _From, #st{pid=Pid}=State) when is_pid(Pid) ->
     {reply, true, State};
@@ -84,20 +82,18 @@
     {reply, false, State}.
 
 
-handle_cast({Pid, updated, IdxState}, #st{mod=Mod, pid=Pid}=State) ->
-    Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState)],
-    ?LOG_INFO("Index update finished for db: ~s idx: ~s", Args),
-    ok = gen_server:cast(State#st.idx, {updated, IdxState}),
-    {noreply, State#st{pid=undefined}};
 handle_cast(_Mesg, State) ->
     {stop, unknown_cast, State}.
 
 
+handle_info({'EXIT', Pid, {updated, IdxState}}, #st{mod=Mod, pid=Pid}=State) ->
+    Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState)],
+    ?LOG_INFO("Index update finished for db: ~s idx: ~s", Args),
+    ok = gen_server:cast(State#st.idx, {updated, IdxState}),
+    {noreply, State#st{pid=undefined}};
 handle_info({'EXIT', Pid, reset}, #st{idx=Idx, pid=Pid}=State) ->
     {ok, NewIdxState} = gen_server:call(State#st.idx, reset),
-    Self = self(),
-    Fun = fun() -> update(Self, Idx, State#st.mod, NewIdxState) end,
-    Pid2 = spawn_link(Fun),
+    Pid2 = spawn_link(fun() -> update(Idx, State#st.mod, NewIdxState) end),
     {noreply, State#st{pid=Pid2}};
 handle_info({'EXIT', Pid, normal}, #st{pid=Pid}=State) ->
     {noreply, State#st{pid=undefined}};
@@ -118,7 +114,7 @@
     {ok, State}.
 
 
-update(Parent, Idx, Mod, IdxState) ->
+update(Idx, Mod, IdxState) ->
     DbName = Mod:get(db_name, IdxState),
     CurrSeq = Mod:get(update_seq, IdxState),
     UpdateOpts = Mod:get(update_options, IdxState),
@@ -185,7 +181,7 @@
         end,
 
         {ok, FinalIdxState} = Mod:finish_update(LastIdxSt),
-        gen_server:cast(Parent, {self(), updated, FinalIdxState})
+        exit({updated, FinalIdxState})
     end).