2017-06-05 3 views
0

Ich habe Blockgerät-I/O-Methoden gespielt, indem ich versucht habe, make_request_fn eines gegebenen Blockgeräts durch Ändern des Funktionszeigers auf make_request_fn in der Strukturwarteschlange zu überschreiben. Ich habe allerdings einen Zweifel, wenn mein eigenes neues make_request_fn aufgerufen wird, hat das struct block_device in struct bio ein dev_t mit einem minor, das immer auf 0 gesetzt wird, egal welches Gerät es ist. Gibt es eine Möglichkeit, herauszufinden, welches kleinere Gerät insbesondere die Bio liefern wird? Weil ich herausfinden muss, welches zwischengespeicherte Original make_request_fn aufruft, bevor ich meine Funktion beende.Gerät dev_t von struct bio holen

Antwort

0

Es war wegen der Partitionen. Ich wusste nicht, dass alle Partitionen dasselbe make_request_fn teilen. Ich habe herausgefunden, zu welcher Partition die Bio gehört, indem ich die Start- und Endsektornummern für jede Partition notiere und den bi_sector in struct bio damit abbilde.

Verwandte Themen