Messages in this thread | | | Date | Wed, 15 Jun 2022 09:34:31 +0800 | From | "chenxiaosong (A)" <> | Subject | Re: [PATCH -next,v2] NFS: report and clear ENOSPC/EFBIG/EDQUOT writeback error on close() file |
| |
在 2022/6/15 3:48, Trond Myklebust 写道: > NACK. How many times do I have to repeat that we do NOT clear the error > log in flush()? >
close(2) manpage described:
> ENOSPC, EDQUOT: On NFS, these errors are not normally reported > against the first write which exceeds the available storage space, > but instead against a subsequent write(2), fsync(2), or close(2).
> A careful programmer will check the return value of close(), since > it is quite possible that errors on a previous write(2) operation are > reported only on the final close() that releases the open file > description. Failing to check the return value when closing a file > may lead to silent loss of data. This can especially be observed > with NFS and with disk quota.
write(2) manpage described:
> Since Linux 4.13, errors from write-back come with a promise that they > may be reported by subsequent. write(2) requests, and will be > reported by a subsequent fsync(2) (whether or not they were also > reported by write(2)).
Both close(2) and write(2) manpage described: report writeback error (not clear error), especially the write(2) manpage described: will be reported by a subsequent fsync(2) whether or not they were also reported by write(2).
If ENOSPC/EFBIG/EDQUOT writeback error can be cleared on write(), maybe it is better to be cleared on close() instead of saving the error for next open().
| |