automount: move generically userful call repeat_mount() into mount-util.[ch]

This commit is contained in:
Lennart Poettering
2015-10-27 14:25:58 +01:00
parent 7b3e062cb6
commit 3f2c0becc3
3 changed files with 37 additions and 22 deletions
+21
View File
@@ -506,3 +506,24 @@ bool fstype_is_network(const char *fstype) {
return nulstr_contains(table, fstype);
}
int repeat_unmount(const char *path, int flags) {
bool done = false;
assert(path);
/* If there are multiple mounts on a mount point, this
* removes them all */
for (;;) {
if (umount2(path, flags) < 0) {
if (errno == EINVAL)
return done;
return -errno;
}
done = true;
}
}
+2
View File
@@ -32,6 +32,8 @@
int fd_is_mount_point(int fd, const char *filename, int flags);
int path_is_mount_point(const char *path, int flags);
int repeat_unmount(const char *path, int flags);
int umount_recursive(const char *target, int flags);
int bind_remount_recursive(const char *prefix, bool ro);