私は、リンクされていないファイルの名前を特定のフォルダに変更するスタック可能なファイルシステムを作成しています。したがって、任意のファイル/ xyzがリンク解除されると、その名前が/ abc/xyzに変更されます。私はスタック可能なファイルシステムのunlink機能を無効にすることでこれをやりたい私はwrapfsを使用しているので、このためにwrapfs_unlinkを変更しています。私は親ディレクトリのinodeを持っているリンクされていないファイルのdentryを持っているので、vfs_unlinkの代わりにvfs_renameを呼び出すために、/ abcとdentry/in/abc/xyzのinodeを持つ必要があります。私はdentryとvfsmountを見つけることができました/私はdentryを持っていますが、dentry/inodeの取得方法はわかりません。私はdentryからiノードを取得できますが、dentryも取得できません。私はlookup_one_lenを使用してみました/ abcが作成されていますが、それでも負のinodeを返します。また、vfs_path_lookupを使用してディレクトリを見つけようとしました/ abcまたエラーを返します。間違った機能を使っていますか?または、これらのメソッドは実際のディレクトリ構造ではなくキャッシュのみを参照していますか?助けてください。カーネルモジュールのディレクトリを検索する
2
A
答えて
0
次のコードを使用して、オブジェクトをリンク解除時にゴミ箱に移動できます。
static int move_to_trash(struct dentry * trash, struct dentry * object)
{
int result;
char name[32];
struct dentry * de;
sprintf(name, "XX-%lu", object->d_inode->i_ino);
de = d_alloc_name(trash, name);
if (!de)
return -ENOMEM;
trash->d_inode->i_op->lookup(trash->d_inode, de, NULL);
mutex_lock(&trash->d_inode->i_mutex);
result = trash->d_inode->i_op->link(object, trash->d_inode, de);
mutex_unlock(&trash->d_inode->i_mutex);
dput(de);
return result;
}
関連する問題
- 1. アセンブリの検索ディレクトリ
- 2. Linuxカーネルモジュール - ディレクトリの作成
- 3. ディレクトリのフォルダを検索する
- 4. ディレクトリ内のファイルを検索する
- 5. ディレクトリを検索する現在のディレクトリを取得します
- 6. ディレクトリのファイルの検索
- 7. Perl:中間ディレクトリ名を検索する
- 8. NTFSディレクトリを検索する.NET
- 9. ディレクトリからファイルを検索する
- 10. ディレクトリを検索するには?
- 11. ディレクトリからPHPを検索する
- 12. node.jsでディレクトリを検索
- 13. Excel VBA:ディレクトリを検索
- 14. Linuxカーネルモジュールのメモリリーク検出ツール
- 15. ルートテーブルとarpキャッシュをカーネルで検索するカーネルモジュールを書くには?
- 16. ディレクトリ構造内のファイルを検索
- 17. コマンドリストの検索結果をディレクトリ順
- 18. VSコード:複数のディレクトリを検索
- 19. Pythonの検索でディレクトリをスキップ
- 20. ディレクトリ内の特定のディレクトリを検索することはできますか?
- 21. ディレクトリ内のファイル名の検索
- 22. LDAPディレクトリの下のオプションROLE検索
- 23. Find:Perlのファイル - シンボリックリンクのディレクトリから検索
- 24. ディレクトリ内のすべてのFortranファイルを検索するBashコマンド
- 25. すべてのディレクトリ内のファイルを検索する
- 26. dotnetビルドproject.csprojまだディレクトリを検索中
- 27. 対象ディレクトリの検索方法
- 28. 親ディレクトリのモジュールを検索するのを防ぐ(...)
- 29. PyCharmのProjectディレクトリにあるファイルを検索するには?
- 30. ループで別のディレクトリにあるファイルを検索する
(*さらに別の*ユニオン/スタックファイルシステム?ため息。) –
私は 'unlink'システムコールの多くの意味を変更することはカーネル空間で理にかなっていることはよく分かりません。なぜあなたの奇妙な目標に 'fuse'を使わないのですか? –
@jørgensen:あなたのコメントをちょっと説明できますか? – gaurav