After more staring at the code, I have a theory.  SlruPhysicalWritePage
and SlruPhysicalReadPage are coded on the assumption that close() can
never return any interesting failure.  However, it now occurs to me that
there are some filesystem implementations wherein ENOSPC could be
returned at close() rather than the preceding write().  (For instance,
the HPUX man page for close() states that this never happens on local
filesystems but can happen on NFS.)  So it'd be possible for
SlruPhysicalWritePage to think it had successfully written a page when
it hadn't.  This would allow a checkpoint to complete :-(

FreeBSD 4.7/4.9 and the UFS filesystem


RETURN VALUES
The close() function returns the value 0 if successful; otherwise the
value -1 is returned and the global variable errno is set to indicate the
error.


ERRORS
     Close() will fail if:

[EBADF] D is not an active descriptor.

[EINTR] An interrupt was received.


Chris


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
     subscribe-nomail command to [EMAIL PROTECTED] so that your
     message can get through to the mailing list cleanly

Reply via email to