Put fsync under #ifdef EXTRA_SANITY and turn it off by default.
fsync here cause real disk trashing when large UUCP mail chanks parsed.
This commit is contained in:
parent
f4567b9c1c
commit
e3807a3f8f
@ -2,6 +2,7 @@
|
||||
|
||||
PROG= mail.local
|
||||
MAN8= mail.local.8
|
||||
# CFLAGS+= -DEXTRA_SAFETY
|
||||
BINOWN= root
|
||||
BINMODE=4555
|
||||
INSTALLFLAGS=-fschg
|
||||
|
@ -288,23 +288,25 @@ deliver(fd, name)
|
||||
if ((nw = write(mbfd, buf + off, nr)) < 0) {
|
||||
e_to_sys(errno);
|
||||
warn("%s: %s", path, strerror(errno));
|
||||
goto err2;;
|
||||
goto err2;
|
||||
}
|
||||
if (nr < 0) {
|
||||
e_to_sys(errno);
|
||||
warn("temporary file: %s", strerror(errno));
|
||||
goto err2;;
|
||||
}
|
||||
|
||||
/* Flush to disk, don't wait for update. */
|
||||
if (fsync(mbfd)) {
|
||||
e_to_sys(errno);
|
||||
warn("%s: %s", path, strerror(errno));
|
||||
err2: (void)ftruncate(mbfd, curoff);
|
||||
err1: (void)close(mbfd);
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef EXTRA_SAFETY
|
||||
/* Flush to disk, don't wait for update. */
|
||||
if (fsync(mbfd)) {
|
||||
e_to_sys(errno);
|
||||
warn("%s: %s", path, strerror(errno));
|
||||
goto err2;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Close and check -- NFS doesn't write until the close. */
|
||||
if (close(mbfd)) {
|
||||
e_to_sys(errno);
|
||||
|
Loading…
Reference in New Issue
Block a user