web-dev-qa-db-ja.com

「stat-f」は「タイプ:fuseblk」を示します。 「タイプ:ヒューズ」である必要があります

bindfsまたはsshfsファイルシステムでstat -f .を実行すると、「タイプ:fuseblk」と表示されます。これは正しくない。 ntfs-3gとは異なり、これらのファイルシステムはブロックデバイスを使用して実装されていません。 findmntを実行すると、タイプはFuseと表示されます。

修正できますか?

2
sourcejedi

このバグは修正するには遅すぎると思います。 (つまり、これは事実上機能でもあります:-)。

現在、_S_MAGIC_FUSEBLK_は、カーネルが内部的に呼び出すものを表すように定義されています Fuse_SUPER_MAGIC 。 (Googleは、「fs.h」で定義されている可能性があることを示唆していますか?しかし、 coreutils で「fs.h」が見つかりません)。

_stat -f ._は_S_MAGIC_FUSEBLK_を「タイプ:fuseblk」として出力します。これは妥当なように聞こえます。問題は、非ブロックFuseファイルシステムでもまったく同じ魔法が返されることです。これは、Linuxシステムコールstatfs()によって返されるフィールドの1つにあります。元の作者は、_ntfs-3g_のようなブロックベースのFuseファイルシステムでのみテストしたと思います。

これについてWebを検索したところ、元のパッチのスレッドしか見つかりませんでした。便利なことに、別のファイルシステムタイプの説明を更新しない理由として、同じスレッドが下位互換性の懸念を説明しました。これが有効である場合は、両方の説明が長すぎて、変更するのはリスクが高すぎるように思われます。

https://lists.gnu.org/archive/html/bug-coreutils/2009-12/msg00229.html

2
sourcejedi