私は Linux ブロック デバイス ドライバーを作成しており、多くの初期化作業が行われています。ただし、最後に を呼び出すadd_disk()
と、モジュールがinsmod
.
問題のあるスニペットは次のとおりです。
set_capacity(gendisk, dev->nsectors);
add_disk(gendisk);
//this line is never reached
私は Linux ブロック デバイス ドライバーを作成しており、多くの初期化作業が行われています。ただし、最後に を呼び出すadd_disk()
と、モジュールがinsmod
.
問題のあるスニペットは次のとおりです。
set_capacity(gendisk, dev->nsectors);
add_disk(gendisk);
//this line is never reached
これは、ディスクを追加するset_capacity()
前にで容量を設定したことが原因のようです。このメーリング リストによると、add_disk
は を使用して gendisk で呼び出す必要がありgendisk->capacity = 0
ますcheck_partition()
。
以下が機能するようです:
set_capacity(gendisk, 0)
add_disk(gendisk);
set_capacity(gendisk, dev->nsectors);