Your init script has the unwelcome side effect of killing client mounts due to the fact that it's trying to kill it's nfs child. Blanket killall statements are not the best way to handle this anyway. Have glusterd take a --pidfile option/an option in glusterd.vol to write it's own pid, as well as the child pid's, to a specified file as those children are spawned. Remove the pids from that file as children are killed (for instance when a volume is stopped).
PATCH: http://patches.gluster.com/patch/7395 in master (build : use pid file to kill nfs process)
PATCH: http://patches.gluster.com/patch/7396 in release-3.2 (build : use pid file to kill nfs process)
installed 3.2.1qa4 and mounted client processes ,then did /etc/init.d/glusterd stop - kills only the glusterd and nfs process and client process is still alive.
PATCH: http://patches.gluster.com/patch/7541 in release-3.1 (build : use pid file to kill nfs process)