summaryrefslogtreecommitdiffstats
path: root/daemon
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-01-28 15:28:25 +0000
committerRichard W.M. Jones <rjones@redhat.com>2011-01-28 15:28:25 +0000
commitd2636b0984830d950423dadd936114ff242c4a00 (patch)
treed773c806f380fdaaeee7a0393e990f7156e2ad5e /daemon
parent1d999540bddd7aea7c2d0fef8b15223d4acc645f (diff)
downloadlibguestfs-d2636b0984830d950423dadd936114ff242c4a00.tar.gz
libguestfs-d2636b0984830d950423dadd936114ff242c4a00.tar.xz
libguestfs-d2636b0984830d950423dadd936114ff242c4a00.zip
Add a new internal-autosync API to perform autosync.
Instead of explicitly calling umount-all; sync, we add a daemon function called internal-autosync which does the same. Apart from slightly simplifying the process of closing the handle, the main advantage is we can modify the daemon for the standalone case so that internal-autosync does not do the umount-all operation.
Diffstat (limited to 'daemon')
-rw-r--r--daemon/sync.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/daemon/sync.c b/daemon/sync.c
index b848ab54..25c7de89 100644
--- a/daemon/sync.c
+++ b/daemon/sync.c
@@ -43,6 +43,23 @@ do_sync (void)
return 0;
}
+/* Older versions of libguestfs used to issue separate 'umount_all'
+ * and 'sync' commands just before closing the handle. Since
+ * libguestfs 1.9.7 the library issues this 'internal_autosync'
+ * internal operation instead, allowing more control in the daemon.
+ */
+int
+do_internal_autosync (void)
+{
+ int r;
+
+ r = do_umount_all ();
+
+ sync_disks ();
+
+ return r;
+}
+
/* This is a replacement for sync(2) which is called from
* this file and from other places in the daemon. It works
* on Windows too.