Commit 04c41559 authored by Boris Burkov's avatar Boris Burkov Committed by David Sterba

btrfs: use superblock state to print space_cache mount option

To make the contents of /proc/mounts better match the actual state of
the filesystem, base the display of the space cache mount options off
the contents of the super block rather than the last mount options
passed in. Since there are many scenarios where the mount will ignore a
space cache option, simply showing the passed in option is misleading.

For example, if we mount with -o remount,space_cache=v2 on a read-write
file system without an existing free space tree, we won't build a free
space tree, but /proc/mounts will read space_cache=v2 (until we mount
again and it goes away)

cache_generation is set iff space_cache=v1, FREE_SPACE_TREE is set iff
space_cache=v2, and if neither is the case, we print nospace_cache.
Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
Signed-off-by: default avatarBoris Burkov <boris@bur.io>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 94846229
...@@ -1483,9 +1483,9 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry) ...@@ -1483,9 +1483,9 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
seq_puts(seq, ",discard=async"); seq_puts(seq, ",discard=async");
if (!(info->sb->s_flags & SB_POSIXACL)) if (!(info->sb->s_flags & SB_POSIXACL))
seq_puts(seq, ",noacl"); seq_puts(seq, ",noacl");
if (btrfs_test_opt(info, SPACE_CACHE)) if (btrfs_free_space_cache_v1_active(info))
seq_puts(seq, ",space_cache"); seq_puts(seq, ",space_cache");
else if (btrfs_test_opt(info, FREE_SPACE_TREE)) else if (btrfs_fs_compat_ro(info, FREE_SPACE_TREE))
seq_puts(seq, ",space_cache=v2"); seq_puts(seq, ",space_cache=v2");
else else
seq_puts(seq, ",nospace_cache"); seq_puts(seq, ",nospace_cache");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment