2010-04-10 41 views
0

我想維護一個塊號的列表,因爲它們是使用linux內核源物理寫入的。我打算修改內核源代碼來執行此操作。我只需要在內核源代碼中找到處理寫入物理分區的結構和函數,並在寫入物理分區時獲取塊編號。Linux內核 - 在寫入數據塊時以編程方式檢索塊號

這樣做的任何方式?任何幫助表示讚賞。如果我能找到內核實際寫入分區並返回塊編號,那就行了。

回答

0

我相信你可以完全從用戶空間做到這一點,而不用修改內核,使用blktrace接口。

0

它不只是一個地方檢查。例如,如果塊設備是iSCSI或AoE目標,則您將查找各自的驅動程序,然後在另一端找到相同的驅動程序。

對於普通SCSI,misc閃存設備等,減去網絡交互也是如此。

VFS只是在一個方便,統一和一致的界面中將這些全部集成在一起,以便像read()和write()這樣的調用在提供緩衝的同時工作。實際的魔法,包括排序和寫屏障由塊開發驅動程序自己處理。

在使用設備映射器的情況下,路徑略有改變。它從vfs - > dm_(目標) - > blockdev_driver。