summaryrefslogtreecommitdiff
path: root/src/shared/fstab-util.h
diff options
context:
space:
mode:
authorKarel Zak <kzak@redhat.com>2015-05-18 12:30:37 +0200
committerLennart Poettering <lennart@poettering.net>2015-05-18 16:07:52 +0200
commit3519d230c8bafe834b2dac26ace49fcfba139823 (patch)
treed7ecec678efe7c8a22a1db96ae9160f43585b91f /src/shared/fstab-util.h
parent06ee4910e4746f18de63d573ab392bc60918e1f0 (diff)
fstab-generator: add x-systemd.requires and x-systemd.requires-mounts-for
Currently we have no way how to specify dependencies between fstab entries (or another units) in the /etc/fstab. It means that users are forced to bypass fstab and write .mount units manually. The patch introduces new systemd fstab options: x-systemd.requires=<PATH> - to specify dependence an another mount (PATH is translated to unit name) x-systemd.requires=<UNIT> - to specify dependence on arbitrary UNIT x-systemd.requires-mounts-for=<PATH ...> - to specify dependence on another paths, implemented by RequiresMountsFor=. The option may be specified more than once. For example two bind mounts where B depends on A: /mnt/test/A /mnt/test/A none bind,defaults /mnt/test/A /mnt/test/B none bind,x-systemd.requires=/mnt/test/A More complex example with overlay FS where one mount point depends on "low" and "upper" directories: /dev/sdc1 /mnt/low ext4 defaults /dev/sdc2 /mnt/high ext4 defaults overlay /mnt/merged overlay lowerdir=/mnt/low,upperdir=/mnt/high/data,workdir=/mnt/high/work,x-systemd.requires-mounts-for=/mnt/low,x-systemd.requires-mounts-for=mnt/high https://bugzilla.redhat.com/show_bug.cgi?id=812826 https://bugzilla.redhat.com/show_bug.cgi?id=1164334
Diffstat (limited to 'src/shared/fstab-util.h')
-rw-r--r--src/shared/fstab-util.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/shared/fstab-util.h b/src/shared/fstab-util.h
index 9f6b32eaf4..387c562a96 100644
--- a/src/shared/fstab-util.h
+++ b/src/shared/fstab-util.h
@@ -28,6 +28,8 @@
int fstab_filter_options(const char *opts, const char *names,
const char **namefound, char **value, char **filtered);
+int fstab_extract_values(const char *opts, const char *name, char ***values);
+
static inline bool fstab_test_option(const char *opts, const char *names) {
return !!fstab_filter_options(opts, names, NULL, NULL, NULL);
}