Specficially shutdown quorum during forced unmount

Generally, forced unmount works by returning errors for all IO.  Quorum
is pretty resilient in that it can have the IO errors eaten by server
startup and does its own messaging that won't return errors.  Trying to
force unmount can have the quorum service continually participate in
electing a server that immediately fails and shutds down.

This specifically shuts down the internal quorum service when it sees
that unmount is being forced.  This is easier and cleaner than having
the network IO return errors and then having that trigger shutdown.

Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
Zach Brown
2021-07-12 13:21:14 -07:00
parent e4dca8ddcc
commit d5d3b12986

View File

@@ -608,7 +608,7 @@ static void scoutfs_quorum_worker(struct work_struct *work)
if (ret < 0)
goto out;
while (!qinf->shutdown) {
while (!(qinf->shutdown || scoutfs_forcing_unmount(sb))) {
ret = recv_msg(sb, &msg, qst.timeout);
if (ret < 0) {