> What's about the folowing lines upto line 754 (goto repeat;)? It look's like
> the comment points to this code. In line 751/752 there is the needed
> wakeup_bdflush(1) ... isn't it?
>
> Werner
As I currently understand (I'm still learning buffer.c..), the last
wakeup_bdflush(1) is only triggered when we are *really* desperate,
and at this point we can be in a scenario in which most of the buffer
cache contains dirty buffers and almost no free pages are available.
On the other hand, something like:
while(nr_buffers_type[BUF_DIRTY] > ... )
wakeup_bdflush(1);
should say to the writing process "hold on a bit before you supply me
a new wave of buffers, as the write pipeline is already full enough
for efficient operation, and I'm already servicing it as fast as I can".
Gadi