[Momonga-devel.ja:01525] Re: md ロードエラー


tom です。

On Sun, 23 Mar 2003 12:55:17 +0900
Kenichi Tanigawa <t-ken@xxxxxxxxxxxxxxxxxxx> wrote:

> 以前と状況は変わってません
> 
> # modprobe md
> /lib/modules/2.4.20-37mk7/kernel/drivers/md/md.o: 
> 		unresolved symbol md_autostart_arrays_R6c2761a4
> /lib/modules/2.4.20-37mk7/kernel/drivers/md/md.o:
> 		insmod /lib/modules/2.4.20-37mk7/kernel/drivers/md/md.o failed
> /lib/modules/2.4.20-37mk7/kernel/drivers/md/md.o: insmod md failed

さきほど 39m を commit しました。

えっと、簡単に説明しとくと、md_autostart_arrays というのは Software
Suspend の patch を当てた際に追加される関数ですが、この関数は #ifndef
MODULE のブロックの中に追加されていました。

したがって、モジュールとしてビルドした時にはこの関数は存在しなくなって
しまいますが、EXPORT_SYMBOL だけはされていたため、unresolved となって
いました。

今回の変更は単に md_autostart_arrays 関数とそれから呼ばれる内部の関数
autostart_arrays および autostart_arrays が参照している変数をセットす
る md_autodetect_dev を #ifndef MODULE の外に出しただけです。

結果として、unresolved は無くなっていますが、正常に動作するかどうかは
わかりません。md_autodetect_dev を呼ぶ個所が md.c 内に一箇所あって、そ
の部分も #ifndef MODULE でモジュール時は無効になっていましたが、#if 1
としてモジュールの時も実行されるようにしてあります。

> みなさん RAID って使ってないんでしょうか

私は、md は使っていませんので、使ってらっしゃる方テストしてみてくださ
い。尚、物が物だけにバックアップを取っておいてください。何がおきても
自己責任という事でよろしく。

あ、あと longrun も unresolved 出てたので修正しておきました。こちらは
多分想定されている通りに動くと思います。ソースが正しいならば正常に機能
するでしょう(笑)

crusoe な方テストしてみてください。

では