summaryrefslogtreecommitdiffstats
path: root/sbin/hastd
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2011-10-27 18:45:01 +0000
committerpjd <pjd@FreeBSD.org>2011-10-27 18:45:01 +0000
commitc2e715af70b7bfbdbf345b266294162f4f27be40 (patch)
treef453fb32cb998bd0905938d6a53f49328bee05bf /sbin/hastd
parenta6c5138e838c72eab719291f4761da0d60653908 (diff)
downloadFreeBSD-src-c2e715af70b7bfbdbf345b266294162f4f27be40.zip
FreeBSD-src-c2e715af70b7bfbdbf345b266294162f4f27be40.tar.gz
Delay resuid generation until first connection to secondary, not until first
write. This way on first connection we will synchronize only the extents that were modified during the lifetime of primary node, not entire GEOM provider. MFC after: 3 days
Diffstat (limited to 'sbin/hastd')
-rw-r--r--sbin/hastd/primary.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/sbin/hastd/primary.c b/sbin/hastd/primary.c
index 21e888a..4cdbf0f 100644
--- a/sbin/hastd/primary.c
+++ b/sbin/hastd/primary.c
@@ -1159,13 +1159,10 @@ ggate_recv_thread(void *arg)
break;
case BIO_WRITE:
res->hr_stat_write++;
- if (res->hr_resuid == 0) {
- /*
- * This is first write, initialize localcnt and
- * resuid.
- */
+ if (res->hr_resuid == 0 &&
+ res->hr_primary_localcnt == 0) {
+ /* This is first write. */
res->hr_primary_localcnt = 1;
- (void)init_resuid(res);
}
for (;;) {
mtx_lock(&range_lock);
OpenPOWER on IntegriCloud