Merge pull request #11562 from yuwata/fix-11558
core/mount: do not add Before=local-fs.target or remote-fs.target if nofail mount option is set
This commit is contained in:
commit
a90d944359
|
@ -131,11 +131,15 @@
|
||||||
<filename>umount.target</filename> in order to be stopped during shutdown.</para></listitem>
|
<filename>umount.target</filename> in order to be stopped during shutdown.</para></listitem>
|
||||||
|
|
||||||
<listitem><para>Mount units referring to local file systems automatically gain
|
<listitem><para>Mount units referring to local file systems automatically gain
|
||||||
an <varname>After=</varname> dependency on <filename>local-fs-pre.target</filename>.</para></listitem>
|
an <varname>After=</varname> dependency on <filename>local-fs-pre.target</filename>, and a
|
||||||
|
<varname>Before=</varname> dependency on <filename>local-fs.target</filename> unless
|
||||||
|
<option>nofail</option> mount option is set.</para></listitem>
|
||||||
|
|
||||||
<listitem><para>Network mount units
|
<listitem><para>Network mount units
|
||||||
automatically acquire <varname>After=</varname> dependencies on <filename>remote-fs-pre.target</filename>,
|
automatically acquire <varname>After=</varname> dependencies on <filename>remote-fs-pre.target</filename>,
|
||||||
<filename>network.target</filename> and <filename>network-online.target</filename>. Towards the latter a
|
<filename>network.target</filename> and <filename>network-online.target</filename>, and gain a
|
||||||
|
<varname>Before=</varname> dependency on <filename>remote-fs.target</filename> unless
|
||||||
|
<option>nofail</option> mount option is set. Towards the latter a
|
||||||
<varname>Wants=</varname> unit is added as well.</para></listitem>
|
<varname>Wants=</varname> unit is added as well.</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
|
|
@ -453,6 +453,7 @@ static int mount_add_default_dependencies(Mount *m) {
|
||||||
const char *after, *before;
|
const char *after, *before;
|
||||||
UnitDependencyMask mask;
|
UnitDependencyMask mask;
|
||||||
MountParameters *p;
|
MountParameters *p;
|
||||||
|
bool nofail;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
assert(m);
|
assert(m);
|
||||||
|
@ -471,6 +472,7 @@ static int mount_add_default_dependencies(Mount *m) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
mask = m->from_fragment ? UNIT_DEPENDENCY_FILE : UNIT_DEPENDENCY_MOUNTINFO_DEFAULT;
|
mask = m->from_fragment ? UNIT_DEPENDENCY_FILE : UNIT_DEPENDENCY_MOUNTINFO_DEFAULT;
|
||||||
|
nofail = m->from_fragment ? fstab_test_yes_no_option(m->parameters_fragment.options, "nofail\0" "fail\0") : false;
|
||||||
|
|
||||||
if (mount_is_network(p)) {
|
if (mount_is_network(p)) {
|
||||||
/* We order ourselves after network.target. This is
|
/* We order ourselves after network.target. This is
|
||||||
|
@ -501,9 +503,11 @@ static int mount_add_default_dependencies(Mount *m) {
|
||||||
before = SPECIAL_LOCAL_FS_TARGET;
|
before = SPECIAL_LOCAL_FS_TARGET;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = unit_add_dependency_by_name(UNIT(m), UNIT_BEFORE, before, true, mask);
|
if (!nofail) {
|
||||||
if (r < 0)
|
r = unit_add_dependency_by_name(UNIT(m), UNIT_BEFORE, before, true, mask);
|
||||||
return r;
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, true, mask);
|
r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, true, mask);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
|
Loading…
Reference in a new issue