Linuxの備忘録とか・・・(目次へ)Linuxの備忘録とか・・・(目次へ)umountのMNT_FORCEMNT_FORCEのmanの説明です。使用中(busy)でも強制的にアンマウントを実行する。これを行うとデータを失う可能性がある。(NFSマウント専用)となっていますが、これも正しくないように思われます。MNT_FORCEは、sb->s_op->umount_begin()コールバック関数がコールされるかどうかの違いで、あとは通常のumountと処理は同じです。propagate_mount_busy()でそのファイルシステム配下が参照されていれば、MNT_FORCEでもumountできません。umount_begin()コールバック関数が定義されているファイルシステムは、以下のファイルシステムで、nfsに限った事でありません。その処理は、ファイルシステム依存ということですが。:plan9ファイルシステムnfsについてみてみると、どうやら該当ファイルシステムを実現するための掛かるプロセスを削除しているようです。上記のファイルシステムは、通常のファイルシステムと違って、ブロックデバイスの物理層とカーネルとして実装しているvfsと直接やり取りするわけにいきません。これらのファイルシステムとのやり取りは、その間にインターフェース的(ネットワーク等々)補完処理が介在します。その処理として必要なプロセスが起動されているわけです。従ってこれらのファイルシステムをumountするには、仲介してるこれらのプロセスを削除する必要があるわけです。通常のumountでもこれ等のファイルシステムもアンマウントできます(たぶん。retval;}当初、sb->s_op->umount_begin()で該当プロセスの削除と同時に、マウント参照カウンタをデクリメントする事で、プロセスが参照していても、MNT_DETACHのようにunmountできるのでは。nfsで検証してみましたが、そんな事はありませんでした。アンマウントできません。MNT_FORCEって、なんの為にあるの?って。今のレベルの理解では、使い道が分からない、どうでもいいオプションと言う事でしょうか。補足MNT_EXPIREはMNT_FORCE/MNT_DETACHと一緒に使うことはできませんが、MNT_FORCEとMNT_DETACHは一緒に使うことができます。ノースAdsense広告情報が設定されていません。