ページ キャッシュを走査し、特定のブロックを含むページを検索する関数を Linux カーネル空間に記述しようとしています。
ページキャッシュ内のページを 1 つずつ取得する方法がわかりません。
それfind_get_page
が私を助けることができる機能であることがわかりましたが、最初のページオフセットを取得する方法と続行する方法がわかりません。私が言ったように、私はそのようなことをしようとしています:
for(every page in struct address_space *mapping)
{
for(every struct buffer_head in current_page->buffers)
{
check if(my_sector == current_buffer_head->b_blocknr)
...
}
}
すべてのページキャッシュを調べる方法を見つけるのを手伝ってくれる人はいますか?
Linuxカーネルには、このようなことを行うコードがあると思います(たとえば、ページへの書き込みがあり、ページがキャッシュで検索された場合)が、見つかりませんでした...
ありがとう!