dovecot: Handle write failures with files better.
dovecot at dovecot.org
dovecot at dovecot.org
Sat Nov 24 06:59:13 EET 2007
details: http://hg.dovecot.org/dovecot/rev/6a9080055e54
changeset: 6851:6a9080055e54
user: Timo Sirainen <tss at iki.fi>
date: Sat Nov 24 06:59:08 2007 +0200
description:
Handle write failures with files better.
diffstat:
1 file changed, 8 insertions(+), 1 deletion(-)
src/lib/ostream-file.c | 9 ++++++++-
diffs (26 lines):
diff -r c8f6eec5e996 -r 6a9080055e54 src/lib/ostream-file.c
--- a/src/lib/ostream-file.c Sat Nov 24 06:51:27 2007 +0200
+++ b/src/lib/ostream-file.c Sat Nov 24 06:59:08 2007 +0200
@@ -205,7 +205,8 @@ static ssize_t o_stream_writev(struct fi
if (ret > 0) {
fstream->real_offset += ret;
ret += sent;
- } else {
+ } else if (!fstream->file) {
+ /* return what we managed to get sent */
ret = sent;
}
}
@@ -214,6 +215,12 @@ static ssize_t o_stream_writev(struct fi
if (errno == EAGAIN || errno == EINTR)
return 0;
fstream->ostream.ostream.stream_errno = errno;
+ stream_closed(fstream);
+ return -1;
+ }
+ if (unlikely(ret == 0 && fstream->file)) {
+ /* assume out of disk space */
+ fstream->ostream.ostream.stream_errno = ENOSPC;
stream_closed(fstream);
return -1;
}
More information about the dovecot-cvs
mailing list