Paul Mather <email@example.com> writes:
>Why would that necessarily be more successful? If the outstanding
>buffers count is not reducing between time intervals, it is most likely
>because there is some underlying hardware problem (e.g., a bad block).
>If the count still persists in staying put, it likely means whatever the
>hardware is doing to try and fix things (e.g., write reallocation) isn't
>working, and so the kernel may as well give up.
So the kernel is relying on guesswork whether the buffers are flushed
>You can enumerate the buffers and *try* to write them, but that doesn't
>guarantee they will be written successfully any more than observing the
>relative number left outstanding.
That's rather nonsensical. If I write each buffer synchronously (and
wait for the disk's response) this is for sure a lot more reliable than
observing changes in the number of remaining buffers. I mean, where's
the sense in the latter? It would be analogous to, in userspace, having
to monitor write(2) continuously over a given time interval and check
whether the number it returns eventually reaches zero. That's complete