2017-06-05 49 views
0

我一直在嘗試通過更改指向make_request_fn函數指針的結構隊列中的任何給定塊設備的make_request_fn來繞過塊設備I/O方法。我有一個疑問,當我自己的新make_request_fn被調用時,struct bio內部的struct block_device有一個dev_t,其中一個次要總是設置爲0,無論它是什麼設備。有沒有什麼方法可以找出生物將要服務的特別小的裝置?因爲我需要在結束我的函數之前找出哪個緩存的原始make_request_fn要調用。從struct bio獲取設備dev_t

回答

0

這是因爲分區。我不知道所有分區將共享相同的make_request_fn。我通過記下每個分區的開始和結束扇區號以及將struct bio內的bi_sector映射到這裏來找出生物屬於哪個分區。