mirror of
https://github.com/systemd/systemd
synced 2024-09-06 00:41:36 +00:00
Merge pull request #4053 from brulon/force-unmount
add ForceUnmount= setting for mount units
This commit is contained in:
commit
43f1f9a61d
|
@ -364,6 +364,17 @@
|
|||
off.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ForceUnmount=</varname></term>
|
||||
|
||||
<listitem><para>Takes a boolean argument. If true, force an
|
||||
unmount (in case of an unreachable NFS system).
|
||||
This corresponds with
|
||||
<citerefentry project='man-pages'><refentrytitle>umount</refentrytitle><manvolnum>8</manvolnum></citerefentry>'s
|
||||
<parameter>-f</parameter> switch. Defaults to
|
||||
off.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>DirectoryMode=</varname></term>
|
||||
<listitem><para>Directories of mount points (and any parent
|
||||
|
|
|
@ -117,6 +117,7 @@ const sd_bus_vtable bus_mount_vtable[] = {
|
|||
SD_BUS_PROPERTY("DirectoryMode", "u", bus_property_get_mode, offsetof(Mount, directory_mode), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("SloppyOptions", "b", bus_property_get_bool, offsetof(Mount, sloppy_options), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("LazyUnmount", "b", bus_property_get_bool, offsetof(Mount, lazy_unmount), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("ForceUnmount", "b", bus_property_get_bool, offsetof(Mount, force_unmount), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Mount, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_PROPERTY("UID", "u", NULL, offsetof(Unit, ref_uid), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_PROPERTY("GID", "u", NULL, offsetof(Unit, ref_gid), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
|
|
|
@ -356,6 +356,7 @@ Mount.TimeoutSec, config_parse_sec, 0,
|
|||
Mount.DirectoryMode, config_parse_mode, 0, offsetof(Mount, directory_mode)
|
||||
Mount.SloppyOptions, config_parse_bool, 0, offsetof(Mount, sloppy_options)
|
||||
Mount.LazyUnmount, config_parse_bool, 0, offsetof(Mount, lazy_unmount)
|
||||
Mount.ForceUnmount, config_parse_bool, 0, offsetof(Mount, force_unmount)
|
||||
EXEC_CONTEXT_CONFIG_ITEMS(Mount)m4_dnl
|
||||
CGROUP_CONTEXT_CONFIG_ITEMS(Mount)m4_dnl
|
||||
KILL_CONTEXT_CONFIG_ITEMS(Mount)m4_dnl
|
||||
|
|
|
@ -678,7 +678,9 @@ static void mount_dump(Unit *u, FILE *f, const char *prefix) {
|
|||
"%sFrom /proc/self/mountinfo: %s\n"
|
||||
"%sFrom fragment: %s\n"
|
||||
"%sDirectoryMode: %04o\n"
|
||||
"%sLazyUnmount: %s\n",
|
||||
"%sSloppyOptions: %s\n"
|
||||
"%sLazyUnmount: %s\n"
|
||||
"%sForceUnmount: %s\n",
|
||||
prefix, mount_state_to_string(m->state),
|
||||
prefix, mount_result_to_string(m->result),
|
||||
prefix, m->where,
|
||||
|
@ -688,7 +690,9 @@ static void mount_dump(Unit *u, FILE *f, const char *prefix) {
|
|||
prefix, yes_no(m->from_proc_self_mountinfo),
|
||||
prefix, yes_no(m->from_fragment),
|
||||
prefix, m->directory_mode,
|
||||
prefix, yes_no(m->lazy_unmount));
|
||||
prefix, yes_no(m->sloppy_options),
|
||||
prefix, yes_no(m->lazy_unmount),
|
||||
prefix, yes_no(m->force_unmount));
|
||||
|
||||
if (m->control_pid > 0)
|
||||
fprintf(f,
|
||||
|
@ -850,6 +854,8 @@ static void mount_enter_unmounting(Mount *m) {
|
|||
r = exec_command_set(m->control_command, UMOUNT_PATH, m->where, NULL);
|
||||
if (r >= 0 && m->lazy_unmount)
|
||||
r = exec_command_append(m->control_command, "-l", NULL);
|
||||
if (r >= 0 && m->force_unmount)
|
||||
r = exec_command_append(m->control_command, "-f", NULL);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
|
|
|
@ -72,6 +72,7 @@ struct Mount {
|
|||
bool sloppy_options;
|
||||
|
||||
bool lazy_unmount;
|
||||
bool force_unmount;
|
||||
|
||||
MountResult result;
|
||||
MountResult reload_result;
|
||||
|
|
Loading…
Reference in a new issue