ディレクトリで複数のFUSEプログラムが動作する場合はどうなりますか?

ディレクトリで複数のFUSEプログラムが動作する場合はどうなりますか?

もちろん、システムは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で発生する操作からイベントを必ず取得する必要はありません。

おすすめ記事