2017-06-05 8 views
0

私は、ブロックキューの中でmake_request_fnへの関数ポインタを変更することによって、任意のブロックデバイスのmake_request_fnをオーバーライドしようとすることで、ブロックデバイスの入出力メソッドを再生してきました。私は自分の新しいmake_request_fnが呼び出されると、疑いがありますが、struct bio内のstruct block_deviceには、それがどのデバイスであっても常にマイナー値が0に設定されたdev_tがあります。バイオが特に役立つマイナーデバイスを見つける方法はありますか?私は自分の機能を終了する前にどのオリジナルのmake_request_fnを呼び出すかを知る必要があるからです。struct bioからdevice dev_tを取得する

答えて

0

パーティションのためです。私はすべてのパーティションが同じmake_request_fnを共有するかどうかはわかりませんでした。私は、各パーティションの開始と終了のセクタ番号を指摘し、bi_sectorをこの構造体の内部にマッピングすることによって、bioがどのパーティションに属しているかを把握しました。

関連する問題