Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jun 2011 21:01:32 +0000 (UTC)
From:      Mikolaj Golub <trociny@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r223655 - head/sbin/hastd
Message-ID:  <201106282101.p5SL1WPP065417@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trociny
Date: Tue Jun 28 21:01:32 2011
New Revision: 223655
URL: http://svn.freebsd.org/changeset/base/223655

Log:
  Check the returned value of activemap_write_complete() and update matadata on
  disk if needed. This should fix a potential case when extents are cleared in
  activemap but metadata is not updated on disk.
  
  Suggested by:	pjd
  Approved by:	pjd (mentor)

Modified:
  head/sbin/hastd/primary.c

Modified: head/sbin/hastd/primary.c
==============================================================================
--- head/sbin/hastd/primary.c	Tue Jun 28 20:57:54 2011	(r223654)
+++ head/sbin/hastd/primary.c	Tue Jun 28 21:01:32 2011	(r223655)
@@ -1687,8 +1687,11 @@ ggate_send_thread(void *arg)
 		}
 		if (ggio->gctl_error == 0 && ggio->gctl_cmd == BIO_WRITE) {
 			mtx_lock(&res->hr_amp_lock);
-			activemap_write_complete(res->hr_amp,
-			    ggio->gctl_offset, ggio->gctl_length);
+			if (activemap_write_complete(res->hr_amp,
+				ggio->gctl_offset, ggio->gctl_length)) {
+				res->hr_stat_activemap_update++;
+				(void)hast_activemap_flush(res);
+			}
 			mtx_unlock(&res->hr_amp_lock);
 		}
 		if (ggio->gctl_cmd == BIO_WRITE) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106282101.p5SL1WPP065417>