public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] btrfs: indicate iversion option in show_options
@ 2020-07-29 16:46 Josef Bacik
  2020-07-29 17:42 ` Eric Sandeen
  0 siblings, 1 reply; 4+ messages in thread
From: Josef Bacik @ 2020-07-29 16:46 UTC (permalink / raw)
  To: linux-btrfs, kernel-team; +Cc: Eric Sandeen

Eric reported a problem where if you did

mount -o remount /some/btrfs/fs

you would lose SB_I_VERSION on the mountpoint.  After a very convoluted
search I discovered this is because the remount infrastructure doesn't
just say "change these things specifically", but it actually depends on
userspace to tell it fucking everything that needs to be set on the
mountpoint.  This led to the fucking horrifying discovery that
util-linux actually has to parse /proc/mounts to figure out what the
fuck is set on the mount point in order to preserve any of the options
it's not actually fucking with, so in this case iversion.  If we don't
indicate iversion is set, then we get iversion cleared on the mount,
because util-linux doesn't pass in MS_I_VERSION as it's mount flags.

So work around this fucking insanity by spitting out iversion in
/proc/mounts so we get the correct flags passed to us in remount.

Reported-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
 fs/btrfs/super.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index aa73422b0678..fe64aa2f5c7a 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1427,6 +1427,10 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
 		seq_puts(seq, ",discard=async");
 	if (!(info->sb->s_flags & SB_POSIXACL))
 		seq_puts(seq, ",noacl");
+	if (info->sb->s_flags & SB_I_VERSION)
+		seq_puts(seq, ",iversion");
+	else
+		seq_puts(seq, ",noiversion");
 	if (btrfs_test_opt(info, SPACE_CACHE))
 		seq_puts(seq, ",space_cache");
 	else if (btrfs_test_opt(info, FREE_SPACE_TREE))
-- 
2.24.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-07-29 17:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-07-29 16:46 [PATCH] btrfs: indicate iversion option in show_options Josef Bacik
2020-07-29 17:42 ` Eric Sandeen
2020-07-29 17:47   ` Josef Bacik
2020-07-29 17:49     ` Eric Sandeen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox