もちろん、システムは1つのディレクトリに2つのインストールを防ぐことができます。
しかし、最上位ディレクトリにFUSEプログラムをマウントし、下位ディレクトリに別のFUSEプログラムをマウントするとどうなりますか?
サブディレクトリからタスクを呼び出すと、正確に何が起こりますか?
私の仮定は、最初は親FUSEからマウントに関連する操作を実行し、次に子FUSEから呼び出される実際の操作に移動することです。
そうですか?
編集:誤って1つのディレクトリに2つをインストールできませんでした。それでは、2つの異なるFUSEプログラムが同じディレクトリにマウントされている場合、どのFUSEプログラムが優先順位を持ちますか?
ベストアンサー1
もちろん、システムは1つのディレクトリに2つのインストールを防ぐことができます。
不要。必要に応じて同じディレクトリを複数回マウントできます。
mkdir /tmp/foo /tmp/bar /tmp/baz
mount --bind /tmp/foo /tmp/baz
mount --bind /tmp/bar /tmp/baz # <-- no error
しかし、最上位ディレクトリにFUSEプログラムをマウントし、下位ディレクトリに別のFUSEプログラムをマウントするとどうなりますか?
FUSEプログラムによってマウントが制御されない場合でも、同じ状況が発生します。新しいマウント「下」にあるディレクトリツリーの上部にはアクセスできなくなります(以前に開いたファイルハンドルを介した場合を除く)。
私の仮定は、最初は親FUSEからマウントに関連する操作を実行し、次に子FUSEから呼び出される実際の操作に移動することです。
そうですね。 Linuxカーネルには「dentry」キャッシュがあるため、ディレクトリがすでにカーネルキャッシュにある場合、「最上位」FUSEプログラムはマウント操作または子FUSEで発生する操作からイベントを必ず取得する必要はありません。