public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Josef Bacik <josef@toxicpanda.com>
To: linux-btrfs@vger.kernel.org, kernel-team@fb.com
Cc: Eric Sandeen <sandeen@redhat.com>
Subject: [PATCH] btrfs: indicate iversion option in show_options
Date: Wed, 29 Jul 2020 12:46:56 -0400	[thread overview]
Message-ID: <20200729164656.7153-1-josef@toxicpanda.com> (raw)

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


             reply	other threads:[~2020-07-29 16:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-29 16:46 Josef Bacik [this message]
2020-07-29 17:42 ` [PATCH] btrfs: indicate iversion option in show_options Eric Sandeen
2020-07-29 17:47   ` Josef Bacik
2020-07-29 17:49     ` Eric Sandeen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200729164656.7153-1-josef@toxicpanda.com \
    --to=josef@toxicpanda.com \
    --cc=kernel-team@fb.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=sandeen@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox