chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
qcow2: when dissecting qcow2, use btrfs clone ioctls for reflinking blocks to target
[elogind.git]
/
src
/
shared
/
fileio.c
diff --git
a/src/shared/fileio.c
b/src/shared/fileio.c
index f4efc4c9f1a21e19713da4b6eec05ad07ace5c72..ff6b1a7ed776db2c6b53a41b09fec1ed43466396 100644
(file)
--- a/
src/shared/fileio.c
+++ b/
src/shared/fileio.c
@@
-66,7
+66,7
@@
int write_string_file_no_create(const char *fn, const char *line) {
assert(line);
/* We manually build our own version of fopen(..., "we") that
assert(line);
/* We manually build our own version of fopen(..., "we") that
- * without O_CREAT */
+ * w
orks w
ithout O_CREAT */
fd = open(fn, O_WRONLY|O_CLOEXEC|O_NOCTTY);
if (fd < 0)
return -errno;
fd = open(fn, O_WRONLY|O_CLOEXEC|O_NOCTTY);
if (fd < 0)
return -errno;
@@
-94,20
+94,10
@@
int write_string_file_atomic(const char *fn, const char *line) {
fchmod_umask(fileno(f), 0644);
fchmod_umask(fileno(f), 0644);
- errno = 0;
- fputs(line, f);
- if (!endswith(line, "\n"))
- fputc('\n', f);
-
- fflush(f);
-
- if (ferror(f))
- r = errno ? -errno : -EIO;
- else {
+ r = write_string_stream(f, line);
+ if (r >= 0) {
if (rename(p, fn) < 0)
r = -errno;
if (rename(p, fn) < 0)
r = -errno;
- else
- r = 0;
}
if (r < 0)
}
if (r < 0)