summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlibglusterfsclient/src/libglusterfsclient.c19
-rwxr-xr-xlibglusterfsclient/src/libglusterfsclient.h4
2 files changed, 23 insertions, 0 deletions
diff --git a/libglusterfsclient/src/libglusterfsclient.c b/libglusterfsclient/src/libglusterfsclient.c
index 26d9a5234dc..8dc63a6eb64 100755
--- a/libglusterfsclient/src/libglusterfsclient.c
+++ b/libglusterfsclient/src/libglusterfsclient.c
@@ -1483,6 +1483,25 @@ out:
return ret;
}
+int
+glusterfs_umount_all (void)
+{
+ struct vmp_entry *entry = NULL, *tmp = NULL;
+
+ pthread_mutex_lock (&lock);
+ {
+ list_for_each_entry_safe (entry, tmp, &vmplist.list, list) {
+ /* even if there are errors, continue with other
+ mounts
+ */
+ _libgf_umount (entry->vmp);
+ }
+ }
+ pthread_mutex_unlock (&lock);
+
+ return 0;
+}
+
void
glusterfs_reset (void)
{
diff --git a/libglusterfsclient/src/libglusterfsclient.h b/libglusterfsclient/src/libglusterfsclient.h
index a2c9a0fa5f2..9e03a8c59ac 100755
--- a/libglusterfsclient/src/libglusterfsclient.h
+++ b/libglusterfsclient/src/libglusterfsclient.h
@@ -199,6 +199,10 @@ int
glusterfs_umount (char *vmp);
+/* glusterfs_umount_all unmounts all the mounts */
+int
+glusterfs_umount_all (void);
+
/* For smaller files, application can use just
* glusterfs_get/glusterfs_get_async