d = fdopendir(fd);
if (!d) {
- close_nointr_nofail(fd);
+ safe_close(fd);
return -errno;
}
p = path_make_absolute(de->d_name, path);
if (!p) {
- close_nointr_nofail(nfd);
+ safe_close(nfd);
return -ENOMEM;
}
r = q;
} while (deleted);
- close_nointr_nofail(fd);
+ safe_close(fd);
return r;
}
d = fdopendir(fd);
if (!d) {
- close_nointr_nofail(fd);
+ safe_close(fd);
return -errno;
}
p = path_make_absolute(de->d_name, path);
if (!p) {
- close_nointr_nofail(nfd);
+ safe_close(nfd);
return -ENOMEM;
}
f = fdopen(fd, "re");
if (!f) {
- close_nointr_nofail(fd);
+ safe_close(fd);
return -ENOMEM;
}
if (!force)
return -EEXIST;
- unlink(new_path);
+ r = unlink(new_path);
+ if (r < 0 && errno != ENOENT)
+ return -errno;
if (symlink(old_path, new_path) >= 0) {
add_file_change(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL);
supposed to be created, not the ones actually created. This is
useful to determine whether the passed files had any
installation data at all. */
- r = install_context_apply(&c, &paths, config_path, root_dir, force, changes, n_changes);
- return r;
+
+ return install_context_apply(&c, &paths, config_path, root_dir, force, changes, n_changes);
}
int unit_file_disable(