[systemd-devel] [RFC 4/4] add remote-fs dependencies if needed after change
Chris Leech
cleech at redhat.com
Fri Nov 21 10:45:18 PST 2014
On Sun, Nov 09, 2014 at 08:32:05AM +0300, Andrei Borzenkov wrote:
> В Thu, 6 Nov 2014 21:11:03 -0800
> Chris Leech <cleech at redhat.com> пишет:
>
> > This is an attempt to add it the remote-fs dependencies to a mount unit
> > if the options change, like when the utab options are picked up after
> > mountinfo has already been processed. It just adds the remote-fs
> > dependencies, leaving the local-fs ones in place.
> >
> > With this change I always get mount units with proper remote-fs
> > dependencies when mounted with the _netdev option.
> >
> > It it not working for -o remount,_netdev. But that looks like a
> > libmount issue in that the ROOT field is not being set in utab on a
> > remount, so if the initial mount did not require a utab entry then
> > remount options never get merge in properly in mnt_table_parse_mtab
> > ---
> > src/core/mount.c | 13 +++++++++++++
> > 1 file changed, 13 insertions(+)
> >
> > diff --git a/src/core/mount.c b/src/core/mount.c
> > index 7d77021..092a720 100644
> > --- a/src/core/mount.c
> > +++ b/src/core/mount.c
> > @@ -1436,6 +1436,19 @@ static int mount_add_one(
> > }
> > }
> >
> > + if (m->running_as == SYSTEMD_SYSTEM) {
> > + const char* target;
> > +
> > + target = mount_needs_network(options, fstype) ? SPECIAL_REMOTE_FS_TARGET : NULL;
> > + /* _netdev option may have shown up late, or on a
> > + * remount. Add remote-fs dependencies, even though
> > + * local-fs ones may already be there */
> > + if (target) {
> > + unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true);
> > + load_extras = true;
> > + }
> > + }
>
> Should not it also add After on network.target to ensure it is
> unmounted before network is down on shutdown? May be simply calling
> mount_add_default_dependencies() would be appropriate here.
Setting load_extras to true causes mount_add_extras to be called further
down in this function, which calls mount_add_default_dependencies.
So in testing I did see the After get added as well. But if there's a
better way to clean up the mount unit adding code I'm all for it.
- Chris
More information about the systemd-devel
mailing list