summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2023-04-20 18:45:09 +0200
committerLennart Poettering <lennart@poettering.net>2023-05-16 09:24:45 +0200
commita789f72ed23afeb4324b880c5207d067ff5ff11c (patch)
tree3f25c49c8ef9ee9a03ad746fb6cafdd4f98a4667 /src
parentf44744ff5120482e8a1f6222f091bd97dc65ed85 (diff)
downloadsystemd-a789f72ed23afeb4324b880c5207d067ff5ff11c.tar.gz
mount-util: add umount_and_free() helper
Diffstat (limited to 'src')
-rw-r--r--src/shared/mount-util.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/shared/mount-util.h b/src/shared/mount-util.h
index d63fddeb10..8a84d61622 100644
--- a/src/shared/mount-util.h
+++ b/src/shared/mount-util.h
@@ -83,6 +83,14 @@ static inline char* umount_and_rmdir_and_free(char *p) {
}
DEFINE_TRIVIAL_CLEANUP_FUNC(char*, umount_and_rmdir_and_free);
+static inline char *umount_and_free(char *p) {
+ PROTECT_ERRNO;
+ if (p)
+ (void) umount_recursive(p, 0);
+ return mfree(p);
+}
+DEFINE_TRIVIAL_CLEANUP_FUNC(char*, umount_and_free);
+
int bind_mount_in_namespace(pid_t target, const char *propagate_path, const char *incoming_path, const char *src, const char *dest, bool read_only, bool make_file_or_directory);
int mount_image_in_namespace(pid_t target, const char *propagate_path, const char *incoming_path, const char *src, const char *dest, bool read_only, bool make_file_or_directory, const MountOptions *options, const ImagePolicy *image_policy);