diff options
Diffstat (limited to 'src/basic/mount-util.c')
-rw-r--r-- | src/basic/mount-util.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/basic/mount-util.c b/src/basic/mount-util.c index 8970050408..840e94a553 100644 --- a/src/basic/mount-util.c +++ b/src/basic/mount-util.c @@ -693,13 +693,12 @@ int umount_verbose(const char *what) { const char *mount_propagation_flags_to_string(unsigned long flags) { switch (flags & (MS_SHARED|MS_SLAVE|MS_PRIVATE)) { - + case 0: + return ""; case MS_SHARED: return "shared"; - case MS_SLAVE: return "slave"; - case MS_PRIVATE: return "private"; } @@ -707,17 +706,18 @@ const char *mount_propagation_flags_to_string(unsigned long flags) { return NULL; } -unsigned long mount_propagation_flags_from_string(const char *name) { - if (isempty(name)) - return 0; - - if (streq(name, "shared")) - return MS_SHARED; - if (streq(name, "slave")) - return MS_SLAVE; - if (streq(name, "private")) - return MS_PRIVATE; +int mount_propagation_flags_from_string(const char *name, unsigned long *ret) { + if (isempty(name)) + *ret = 0; + else if (streq(name, "shared")) + *ret = MS_SHARED; + else if (streq(name, "slave")) + *ret = MS_SLAVE; + else if (streq(name, "private")) + *ret = MS_PRIVATE; + else + return -EINVAL; return 0; } |