Ядро Linux - программно получать номера блоков по мере их записи - PullRequest
0 голосов
/ 10 апреля 2010

Я хочу сохранить список номеров блоков, поскольку они физически записаны в исходный код ядра Linux.Я планирую изменить исходный код ядра, чтобы сделать это.Мне просто нужно найти структуру и функции в исходном коде ядра, которые обрабатывают запись в физические разделы, и получать номера блоков при записи в физический раздел.

Есть ли способ сделать это?Любая помощь приветствуется.Если бы я мог найти, где ядро ​​фактически записывает разделы и возвращает номера блоков, это сработало бы.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2010

Это не просто одно место для проверки.Например, если блочное устройство было целью iSCSI или AoE, вы бы искали соответствующие драйверы, а в конечном итоге то же самое на другом конце.и т. д., за исключением сетевого взаимодействия.

VFS просто объединяет все это в удобный, унифицированный и согласованный интерфейс для таких вызовов, как read () и write (), обеспечивая при этом буферизацию.Фактическая магия, включая барьеры упорядочения и записи, обрабатываются самими драйверами блочных устройств.

В случае использования устройства отображения, путь немного меняется.Это идет от vfs -> dm_ (target) -> blockdev_driver.

0 голосов
/ 11 апреля 2010

Я полагаю, что вы можете сделать это полностью из пользовательского пространства, не модифицируя ядро, используя интерфейс blktrace .

...