Author: trociny
Date: Sun Feb 5 15:23:32 2012
New Revision: 231016
URL: http://svn.freebsd.org/changeset/base/231016
Log:
If a local write request is from the synchronization thread, when it
is synchronizing data that is out of date on the local component, we
should not send G_GATE_CMD_DONE acknowledge to the kernel.
This fixes the issue, observed in async mode, when on synchronization
from the remote component the worker terminated with "G_GATE_CMD_DONE
failed" error.
Reported by: Artem Kajalainen <artem kayalaynen ru>
Reviewed by: pjd
MFC after: 1 week
Modified:
head/sbin/hastd/primary.c
Modified: head/sbin/hastd/primary.c
==============================================================================
--- head/sbin/hastd/primary.c Sun Feb 5 15:21:08 2012 (r231015)
+++ head/sbin/hastd/primary.c Sun Feb 5 15:23:32 2012 (r231016)
@@ -1326,7 +1326,8 @@ local_send_thread(void *arg)
} else {
hio->hio_errors[ncomp] = 0;
if (hio->hio_replication ==
- HAST_REPLICATION_ASYNC) {
+ HAST_REPLICATION_ASYNC &&
+ !ISSYNCREQ(hio)) {
ggio->gctl_error = 0;
write_complete(res, hio);
}
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"