btrfs: make sure SB_I_VERSION doesn't get unset by remount
authorJosef Bacik <josef@toxicpanda.com>
Thu, 30 Jul 2020 15:18:09 +0000 (11:18 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Aug 2020 11:07:22 +0000 (13:07 +0200)
commit30fb5166dfa736c15e015732f8559bf127d4bcd6
tree9abfc14d359258dbe065e76077977fcfe0654b2f
parent12274420151323b7d4d763a844ae9efaff915d5f
btrfs: make sure SB_I_VERSION doesn't get unset by remount

commit faa008899a4db21a2df99833cb4ff6fa67009a20 upstream.

There's some inconsistency around SB_I_VERSION handling with mount and
remount.  Since we don't really want it to be off ever just work around
this by making sure we don't get the flag cleared on remount.

There's a tiny cpu cost of setting the bit, otherwise all changes to
i_version also change some of the times (ctime/mtime) so the inode needs
to be synced. We wouldn't save anything by disabling it.

Reported-by: Eric Sandeen <sandeen@redhat.com>
CC: stable@vger.kernel.org # 5.4+
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ add perf impact analysis ]
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/super.c