- if ((r = write_one_line_file(p, value)) < 0) {
- log_warning("Failed to write '%s' to '%s': %s", value, p, strerror(-r));
- exit_code = r;
+ if (!strv_isempty(arg_prefixes)) {
+ char **i;
+ bool good = false;
+
+ STRV_FOREACH(i, arg_prefixes)
+ if (path_startswith(p, *i)) {
+ good = true;
+ break;
+ }
+
+ if (!good) {
+ log_debug("Skipping %s", p);
+ free(p);
+ return 0;
+ }
+ }
+
+ k = write_one_line_file(p, value);
+ if (k < 0) {
+
+ log_full(k == -ENOENT ? LOG_DEBUG : LOG_WARNING,
+ "Failed to write '%s' to '%s': %s", value, p, strerror(-k));
+
+ if (k != -ENOENT && r == 0)
+ r = k;