2.3.9 mod time bug
David Carter
dpc22 at cam.ac.uk
Sat Sep 1 04:23:27 EDT 2007
On Fri, 31 Aug 2007, John Capo wrote:
> Another thing, the fsync()/fclose() calls in this loop in
> sync_message_fsync() should be reversed, at least on on BSD systems.
>
> /* fsync() files in reverse order: ReiserFS FAQ indicates that this
> * gives best potential for optimisation */
> for (i = (l->file_count-1) ; i >= 0 ; i--) {
> fsync(fileno(l->file[i]));
> fclose(l->file[i]);
> l->file[i] = NULL;
> }
My current tree has:
/* fsync() files in reverse order: ReiserFS FAQ indicates that this
* gives best potential for optimisation */
for (i = (l->file_count-1) ; i >= 0 ; i--) {
if ((fflush(l->file[i]) != 0) ||
(fsync(fileno(l->file[i])) < 0) ||
(fclose(l->file[i]) != 0))
r = IMAP_IOERROR; /* Aggregate to single error */
l->file[i] = NULL;
}
l->file_count = 0;
Looks like it been that way since July 2005. Hope this wasn't a bug
fix that I failed to merge upstream.
--
David Carter Email: David.Carter at ucs.cam.ac.uk
University Computing Service, Phone: (01223) 334502
New Museums Site, Pembroke Street, Fax: (01223) 334679
Cambridge UK. CB2 3QH.
More information about the Cyrus-devel
mailing list