6

私は Linux ブロック デバイス ドライバーを作成しており、多くの初期化作業が行われています。ただし、最後に を呼び出すadd_disk()と、モジュールがinsmod.

問題のあるスニペットは次のとおりです。

set_capacity(gendisk, dev->nsectors);
add_disk(gendisk);

//this line is never reached
4

1 に答える 1

6

これは、ディスクを追加するset_capacity() 前にで容量を設定したことが原因のようです。このメーリング リストによると、add_diskは を使用して gendisk で呼び出す必要がありgendisk->capacity = 0ますcheck_partition()

以下が機能するようです:

set_capacity(gendisk, 0)
add_disk(gendisk);
set_capacity(gendisk, dev->nsectors);
于 2012-11-22T18:35:48.670 に答える