Jan Kara wrote:
BH_Dirty
- Ideally, this bit should mean "buffer has data that have to be
written". But it is not quite true. The problem happens when
someone calls set_page_dirty() on the page to which buffers are
attached or similarly when buffers are attached to a dirty
page. Then all buffers attached to the page are marked dirty -
even those that are beyond end of file which obviously should not
be written.
When buffer is dirty, the page has to be dirty as well (mark
buffer dirty takes care of that). It is not necessarily the other
way around and buffer dirty bit is what ultimately decides whether
the buffer goes to disk or not.
That last sentence implies page can be dirty while a buffer in the
page is not dirty.
In that case, do buffers beyond the end of file need to be set dirty
by set_page_dirty()? If yes, perhaps the text could explain why.
-- Jamie