2012-01-02 7 views
2

私は、スタック可能なファイルシステムであるカーネルモジュール内のファイルシステムのファイルシステムマウントポイントを取得したい。 例/ home/ab/abcがファイルであり、/ homeが別のファイルシステムにマウントされている場合、/ homeにdentryまたはpath構造体が必要です。 カーネルコードを変更せずにモジュールでこれをやりたい例: /home/user /にファイルがあり、このファイルがどのパーティションにあるのか知りたいと思っています。たとえば、このファイルが "/"と同じパーティションにあるか、このファイルが/ homeまたは/ home/userにマウントされた別のパーティションに存在する可能性があります。カーネルモジュールのファイルシステムマウントポイントを取得する

答えて

5

current->namespaceからファイルシステムのリストを取得できます。 current->namespace->list(項目はstruct vfsmount)を繰り返して、すべてのマウントされたファイルシステムを取得できます。 vfsmount->mnt_mountpointは、必要なディレクトリエントリです。

prints /proc/mounts(例:base.c/mountstats_opennamespace.c/m_start)のコードに従うと、詳細を確認できます(ロックが必要な場合など)。

ただし、カーネルモジュールで実行できるかどうかはわかりませんが、

+0

感謝をvfsmount構造体へのポインタを取得することができます。実際には、特定のファイルのマウントポイントを知る方法を知りたかったのです。私はあなたがそれを見ることができるかどうか質問を編集しました。 – gaurav

関連する問題