syslogd: syslogd: don't *decrement* log_file->size on write failures
Even if we fail to write to a log-file, and it's not growing, it's not *shrinking* either.... Signed-off-by: Joshua Judson Rosen <jrosen@harvestai.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
a28c1b21e1
commit
e46047aa87
@ -569,7 +569,7 @@ static void log_to_kmsg(int pri, const char *msg)
|
||||
*/
|
||||
pri &= G.primask;
|
||||
|
||||
write(G.kmsgfd, G.printbuf, sprintf(G.printbuf, "<%d>%s\n", pri, msg));
|
||||
full_write(G.kmsgfd, G.printbuf, sprintf(G.printbuf, "<%d>%s\n", pri, msg));
|
||||
}
|
||||
#else
|
||||
static void kmsg_init(void) {}
|
||||
@ -678,9 +678,14 @@ static void log_locally(time_t now, char *msg, logFile_t *log_file)
|
||||
close(log_file->fd);
|
||||
goto reopen;
|
||||
}
|
||||
log_file->size +=
|
||||
#endif
|
||||
/* TODO: what to do on write errors ("disk full")? */
|
||||
len = full_write(log_file->fd, msg, len);
|
||||
if (len > 0)
|
||||
log_file->size += len;
|
||||
#else
|
||||
full_write(log_file->fd, msg, len);
|
||||
#endif
|
||||
|
||||
#ifdef SYSLOGD_WRLOCK
|
||||
fl.l_type = F_UNLCK;
|
||||
fcntl(log_file->fd, F_SETLKW, &fl);
|
||||
|
Loading…
Reference in New Issue
Block a user