こんにちは私はカーネルプログラミングの初心者です。私はバックアップ機構を実装するためのwrapfsテンプレートに基づいた小さなカーネルモジュール を書いています。これは純粋に学習のための です。構造体inodeにデータを格納する
書き込みコールがwrapfs行われたときに透過 は別のディレクトリにそのファイルのコピーを作成して、書き込みファイルに を行うように私はwrapfsを拡張しています。しかし、私はすべての書き込み呼び出しのコピーを作成することは望ましくありません。
単純なアプローチでは、そのディレクトリにファイルが存在するかどうかを確認できます。しかし、 私はこれが重大なペナルティになる可能性があることを確認する毎回の呼び出しのためだと思います。
プライベートデータ属性を使用して、 特定のファイルの値を最初に書き込む呼び出しをチェックし、その値を保存することもできます。しかし、それは ディスクに格納されません。だからもう一度それを確認する必要があります。
私はまた、修正時間を利用することを考えていました。私は 変更時間を節約することができました。古い変更時刻がその時刻より前の場合は、 コピーが作成されます。それ以外の場合は何も行いません。私はこのためにinode.i_mtime を使用しようとしましたが、書き込みが呼び出される前でも修正された時間でした。また、 アプリケーションはその時間を変更することができます。
私は、ディスクにinodeの値を保存して、 バックアップが作成されたことを示していると考えていました。それは可能ですか?他の提案や のアプローチは大歓迎です。
あなたのBLOBを書式設定することは、あなたの質問を_read_でも得るためには大いに役立ちます。 – sehe