0
我正在研究一個Linux內核模塊,它需要我在將數據寫入本地磁盤之前檢查數據。要寫入的數據從遠程磁盤獲取。因此,我知道來自提取的數據存儲在頁面緩存中。我也知道Linux有一個數據結構來管理飛行中的塊I/O請求,稱爲生物結構。在Linux中訪問生物結構中的緩衝區數據
生物結構包含名爲bio_vecs的結構列表。
struct bio_vec {
/* pointer to the physical page on which this buffer resides */
struct page *bv_page;
/* the length in bytes of this buffer */
unsigned int bv_len;
/* the byte offset within the page where the buffer resides */
unsigned int bv_offset;
};
它有一個列表,因爲內存中的塊表示可能不是物理上連續的。我想要做的是使用bio_vecs列表抓取每一塊緩衝區,並將它們放在一起,以便我可以獲取塊的MD5哈希值。我如何使用指向頁面的指針,緩衝區的長度及其偏移量來獲取緩衝區中的原始數據?有沒有功能,或者我必須寫我自己的?
你看過lwn嗎?有一篇不錯的文章在Google搜索中彈出... http://lwn.net/Articles/26404/ – granquet
你能找到關於此的一些信息嗎? – aminfar