core: do not overwrite existing units source

Only set source for freshly created .mounts coming from
mountinfo file.
This commit is contained in:
Umut Tezduyar 2013-02-07 09:06:20 +01:00 committed by Zbigniew Jędrzejewski-Szmek
parent f6bb13ab8d
commit 47a81ba2e1

View file

@ -1440,7 +1440,7 @@ static int mount_add_one(
int r;
Unit *u;
bool delete;
char *e, *w = NULL, *o = NULL, *s = NULL, *f = NULL;
char *e, *w = NULL, *o = NULL, *f = NULL;
MountParameters *p;
bool load_extras = false;
@ -1488,6 +1488,12 @@ static int mount_add_one(
goto fail;
}
u->source_path = strdup("/proc/self/mountinfo");
if (!u->source_path) {
r = -ENOMEM;
goto fail;
}
unit_add_to_load_queue(u);
} else {
delete = false;
@ -1513,7 +1519,6 @@ static int mount_add_one(
if (!(w = strdup(what)) ||
!(o = strdup(options)) ||
!(s = strdup("/proc/self/mountinfo")) ||
!(f = strdup(fstype))) {
r = -ENOMEM;
goto fail;
@ -1527,8 +1532,6 @@ static int mount_add_one(
}
MOUNT(u)->from_proc_self_mountinfo = true;
free(u->source_path);
u->source_path = s;
free(p->what);
p->what = w;
@ -1554,7 +1557,6 @@ static int mount_add_one(
fail:
free(w);
free(o);
free(s);
free(f);
if (delete && u)