リムーバブルデバイスを使用して、umount -l
の安全で競合状態のない代替手段に取り組んでいます。
私が計画しているのは:
umount --move
パーミッションディレクトリの下にある000
なので、絶対パスでこれ以上ファイルを開くことはできませんumount
を成功させるステップ(3)には、最後の対話型キルの後、mount -o remount,ro
の前に相対パスを持つファイルをrw
で開くことができる競合状態があります。
書き込み用に開かれたファイルシステムにファイルがある場合、mount -o remount,ro
は失敗することが保証されていますか?
マニュアルページはこれについて沈黙しており、 デバイスはblockdev --setro
の後でも書き込み可能 であることを知った後、私は少し妄想的です。
はい。関連するコードは sb_prepare_remount_readonly
(Linux 4.0以降、コードは他のバージョンでは異なる方法で編成される場合があります)。ロジックは次のとおりです。
MNT_WRITE_HOLD
)。EBUSY
を返します)。登録されたライターは、書き込み用に開かれたファイルと、メタデータ(mkdir
、chmod
など)を書き込む進行中の操作です。 mnt_want_write
これは登録されたライターの数が増加する場所です。
システムの設計により、読み取り専用の再マウントが書き込み登録バリアになることが保証されます。成功した場合、登録されたライターはありません。特に、再マウント操作時に書き込み用に開いているファイルはありません。再マウント後、書き込み用に開いているファイルはないため、書き込み用に開いているファイルはまだありません。