aboutsummaryrefslogtreecommitdiff
path: root/sbin/hastd/secondary.c
diff options
context:
space:
mode:
authorPawel Jakub Dawidek <pjd@FreeBSD.org>2011-03-25 20:19:15 +0000
committerPawel Jakub Dawidek <pjd@FreeBSD.org>2011-03-25 20:19:15 +0000
commit54987cacfd339835cf05ad1c3173047d64c2f052 (patch)
tree8cd48e5eb853c7391e9746626b8494cfce6db8fb /sbin/hastd/secondary.c
parent7d4df5cd0b7b11b8015bede8adf4b89e38eb07cf (diff)
downloadsrc-54987cacfd339835cf05ad1c3173047d64c2f052.tar.gz
src-54987cacfd339835cf05ad1c3173047d64c2f052.zip
Add mapsize to the header just before sending the packet.
Before it could change later and we were sending invalid mapsize. Some time ago I added optimization where when nodes are connected for the first time and there were no writes to them yet, there is no initial full synchronization. This bug prevented it from working. MFC after: 1 week
Notes
Notes: svn path=/head/; revision=220007
Diffstat (limited to 'sbin/hastd/secondary.c')
-rw-r--r--sbin/hastd/secondary.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sbin/hastd/secondary.c b/sbin/hastd/secondary.c
index 10c3cab50a55..f2e58bd3e529 100644
--- a/sbin/hastd/secondary.c
+++ b/sbin/hastd/secondary.c
@@ -201,7 +201,6 @@ init_remote(struct hast_resource *res, struct nv *nvin)
"Unable to allocate memory (%zu bytes) for activemap.",
mapsize);
}
- nv_add_uint32(nvout, (uint32_t)mapsize, "mapsize");
/*
* When we work as primary and secondary is missing we will increase
* localcnt in our metadata. When secondary is connected and synced
@@ -339,6 +338,7 @@ init_remote(struct hast_resource *res, struct nv *nvin)
(uintmax_t)res->hr_secondary_localcnt,
(uintmax_t)res->hr_secondary_remotecnt);
}
+ nv_add_uint32(nvout, (uint32_t)mapsize, "mapsize");
if (hast_proto_send(res, res->hr_remotein, nvout, map, mapsize) < 0) {
pjdlog_exit(EX_TEMPFAIL, "Unable to send activemap to %s",
res->hr_remoteaddr);