Units created with "systemctl edit --full" from generator units aren't
removed with "systemctl revert" because units in the generator,
generator_early, and generator_late paths aren't considered vendor
units.
Alter path_is_vendor() to return true if the given path is a
generator unit, which in turn causes "systemctl revert" to remove units
created with "systemctl edit --full" as they now have vendor versions.
Fixes #10053
path_equal_ptr(path, p->runtime_control);
}
-static int path_is_vendor(const LookupPaths *p, const char *path) {
+static int path_is_vendor_or_generator(const LookupPaths *p, const char *path) {
const char *rpath;
assert(p);
return true;
#endif
+ if (path_is_generator(p, rpath))
+ return true;
+
return path_equal(rpath, SYSTEM_DATA_UNIT_PATH);
}
return -errno;
} else if (S_ISREG(st.st_mode)) {
/* Check if there's a vendor version */
- r = path_is_vendor(&paths, path);
+ r = path_is_vendor_or_generator(&paths, path);
if (r < 0)
return r;
if (r > 0)