Badari Pulavarty <[EMAIL PROTECTED]> wrote: > > I see that as part of bufferheads to page association, we get a > ref. on the page. > > create_empty_buffers() -> attach_page_buffers() -> page_cache_get() > > I also see that this reference get dropped by .. > > shrink_list() -> try_to_release_page() -> > try_to_free_buffers() -> drop_buffers() -> > __clear_page_buffers()-> page_cache_release(); > > So, it looks like we drop the reference on the page and disassociate > bufferheads from the page when VM wants to re-use the page. Only other > path, I see this can happen is through invalidate_mapping_pages(). > Is this true ? > > If I do fsync(), we flush the data - still leave the page & bufferhead > association. If I see lots of bufferheads even after fsync() is normal. > Correct ?
Seems about right. There's also the buffer_heads_over_limit logic in mm/vmscan.c and fs/buffer.c. That logic has a hole in that it requires that there be a highmem shortage before we start to reclaim the lowmem buffer_heads, but it is somewhat helpful. - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
