From 03ad1136ba6ddaeca626aa24362dab764c7e2398 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 15 May 2012 14:34:33 +0200 Subject: tmpfiles: if we are supposed to write a string to a file, it's OK if we can't write the trailing newline --- src/tmpfiles/tmpfiles.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/tmpfiles') diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 235617853b..2ee0601e64 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -617,8 +617,13 @@ static int create_item(Item *i) { iovec[1].iov_len = 1; n = writev(fd, iovec, 2); - if (n < 0 || (size_t) n != l+1) { - log_error("Failed to write file %s: %s", i->path, n < 0 ? strerror(-n) : "Short"); + + /* It's OK if we don't write the trailing + * newline, hence we check for l, instead of + * l+1 here. Files in /sys often refuse + * writing of the trailing newline. */ + if (n < 0 || (size_t) n < l) { + log_error("Failed to write file %s: %s", i->path, n < 0 ? strerror(-n) : "Short write"); close_nointr_nofail(fd); return n < 0 ? n : -EIO; } -- cgit v1.2.3-54-g00ecf