Hi,,
I am trying to understand interactions between filesystem pagecache
pages & bufferhead associated with them.
I was wondering if someone could help me clarify this..
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 ?
Thanks,
Badari
-
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