walb-linux / walb-driver

Linux block device driver with write-ahead logging functionality for backup and replication.
36 stars 6 forks source link

Fix compile error on linux-4.14. #3

Closed cupnes closed 6 years ago

cupnes commented 6 years ago

Linuxカーネルメインラインの4.14でBIO周りの定義が変更されたために、 WalBドライバでその定義を使用していた箇所でコンパイルエラーが発生していました。

メインライン側のカーネルソース同梱ドライバへの修正内容を参考に、WalBドライバへも 同様の修正を行い、コンパイルエラー無いこと、 動作としてはwalb-toolsのscenario0.pyの全シナリオテストがSUCCESSすることを確認しております。

パッチは3つあり、修正内容は以下のとおりです。 いずれもメインラインのコミットに従って同様の修正を行っています。

[*1] blk-mq: provide internal in-flight variant http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f299b7c

[*2] drbd: use generic io stats accounting functions to simplify io stat accounting https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2448085

[*3] block: replace bi_bdev with a gendisk pointer and partitions index https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=74d4699

[*4] block: pass in queue to inflight accounting https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d62e26b

なお、そもそも4.14はサポート外かと思われ、 どのようにマージされるか(あるいはマージしないか)はお任せいたします。 (まずはmasterではなく"for-4.14"等でブランチを作成し、そちらへのマージされる形でしょうか。)

starpos commented 6 years ago

ありがとうございます。

cupnes commented 6 years ago

de1892d と 85dcafa を分ける意味が私には良く分からなかったのですが、何か意図はあるのでしょうか?

すみません。分ける必要は無かったです。 de1892d と 85dcafa はマージして再度PR出させてください。 (修正した順にコミットが残っていただけです。すみません。。)

また、masterブランチの用途とテストについてもありがとうございます。承知いたしました。