diff options
author | Lennart Poettering <lennart@poettering.net> | 2023-04-20 18:45:09 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2023-05-16 09:24:45 +0200 |
commit | a789f72ed23afeb4324b880c5207d067ff5ff11c (patch) | |
tree | 3f25c49c8ef9ee9a03ad746fb6cafdd4f98a4667 /src | |
parent | f44744ff5120482e8a1f6222f091bd97dc65ed85 (diff) | |
download | systemd-a789f72ed23afeb4324b880c5207d067ff5ff11c.tar.gz |
mount-util: add umount_and_free() helper
Diffstat (limited to 'src')
-rw-r--r-- | src/shared/mount-util.h | 8 |
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); |